【问题】
运行Android的ADT,即Eclipse出错:
Failed to load the JNIshared library
C:\Program Files(x86)\Java\jre6\bin\client\jvm.dll
其中背景是:
1.之前已经可以正常运行的,即已经正常安装了JRE6的。
2.后来删除掉了JRE6了。
3.刚刚又去重新安装了JRE6,结果还是错误依旧。
4.并且已经确定了:C:\ProgramFiles (x86)\Java\jre6\bin\client\jvm.dll是存在的。
【解决过程】
1.现在想办法搞清楚,为何还是不行。
难道需要重启电脑才可以???
2.去随便看了看,当前的eclipse的配置:
D:\tmp\tmp_dev_root\android\adt-bundle-windows\eclipse\eclipse.ini中是:
-Dosgi.requiredJavaVersion=1.6
明显是要求java是1.6版本的。
3.参考了:
http://aquilo.diandian.com/post/2012-05-27/21832516
感觉没太大帮助。
4.又参考:
http://dongdong1314.blog.51cto.com/389953/490211
再去确认一下之前装的JDK,是
jdk-6-windows-amd64.exe,也的确是64位的。结果还是不行啊。
5.重新安装jdk-6-windows-amd64.exe一下试试。
6.想起来了。这样肯定也有问题。因为上面提示的是C:\Program Files (x86)\表示eclipse希望的是32位的java。所以,此处,看来还是需要找到,是不是哪里的,环境变量,还是注册表中,残留的这个路径,去删除掉,更新为最新的C:\Program Files\的java的路径才可以。
7.果然,在PATH环境变量中,看到了,有两个java相关的路径:
C:\Program Files (x86)\Java\jre6\bin :是之前加上去的,估计是安装jre后自己加上去的
C:\Program Files\Java\jdk1.6.0\bin:是刚装的JDK后,自己手动加上去的,所以很简单了。
先去删除旧的路径:
C:\Program Files (x86)\Java\jre6\bin结果问题依旧。
8.最后终于发现了,原来是,环境变量:
JAVA_HOME=C:\Program Files (x86)\Java\jre6
所以,始终找不到对应的值,现在把其改为:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0
并且,PATH中,也已经有了:%JAVA_HOME%\bin这样,应该就可以了。
去试了试,果然可以了,可以正常运行Eclipse,此处的ADT了:
【总结】
当运行基于Java的东西,此处是Eclipse(用于开发Android的ADT),如果出现:
Failed to load the JNI shared library C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
之类的问题时,则很简单,先去看看,对应的路径中,是否真的存在jvm.dll
如果没有,那很明显,需要自己去安装对应的版本自己去Oracle官网下载,对应的版本的,JRE或JDK比如我的是,x64的Win7,下载了个:jdk-6-windows-amd64.exe。再去确认一下Java的环境变量是否正常:JAVA_HOME:应该是你的JRE或者JDK的安装路径
比如我这里,64位的win7,安装的是64位的JDK 6,所以安装后,对应路径为:
C:\Program Files\Java\jdk1.6.0
PATH:path中应该包含java的bin目录,类似于
C:\Program Files (x86)\Java\jre6\bin\
提示:但是由于已经设置好了JAVA_HOME了,所以可以更加通用的写为
%JAVA_HOME%\bin
另外,提示一下:
64位的(Win7)系统中,对应的软件安装目录:
32位的软件,默认安装到:C:\ProgramFiles (x86)\
64位的软件,默认安装到:C:\ProgramFiles\