今天在学习Hibernate的时候,查看Hibernate的文档中关于UUID的描述时,有这么一句话:
“UUID包含:IP地址,JVM的启动时间(精确到1/4秒),系统时间和一个计数器值(在JVM中唯一)。 在Java代码中不可能获得MAC地址或者内存地址,所以这已经是我们在不使用JNI的前提下的能做的最好实现了。”1.为什么Java不能获得MAC地址或者内存地址?经常看到网上一些关于java获取MAC地址的文章,他们好像用的是Runtime类
2.另外,在开发中哪些地方能用到JNI??谢高手指点~~~

解决方案 »

  1.   

    1、获取mac地址不使用jni的方法就是调用系统命令ipconfig,然后解析获取到的数据,也就是调用runtime类来实现。
    2、需要调用c++或其它语言编写的dll时需要用到jni。
      

  2.   

    NetworkInterface类可以访问到本机所有网卡的信息,自己查查API文档吧
      

  3.   

    1、获取mac地址不使用jni的方法就是调用系统命令ipconfig,然后解析获取到的数据,也就是调用runtime类来实现。 
    2、需要调用c++或其它语言编写的dll时需要用到jni(一般使用JNI时都是用JNI获取客户端机器的一些标识用来做校验【是否合法用户或其它】的),但是用了JNI后平台上的移植性不方便【例如在windows下编写的dll文件在Linux上就用不了等等】。
    3、NetworkInterface类可以访问到本机所有网卡的信息,自己查查API文档吧。
      

  4.   

    再就是IE6上可以用JS去获取客户端机器的信息   LZ可以到google上搜“js获取MAC” 就会有很多相关介绍信息。