刚刚发现机器上有一堆的jre,jdk,现在是乱七八糟,头都大了1 原来装了jbuilder9,里面自带一个jdk1.4,那么运行jb的时候是不是就用它自带的1.4呀?2 安装了jbuilder2007,里面也自带一个jdk,版本就不知道了3 后来要用eclipse,查看机器环境变量,发现没有设置java的三个相关变量,就以为机器上没有jre&jdk(而实际上已经安装,只是没有设置环境变量).于是安装了jre&jdk1.5版本,并把三个环境变量设置好了。然后运行eclipse,没有问题。4 发现jbuilder9不能使用,把它卸载了,但是jdk1.4还残留在机器中
5 今天用eclipse运行程序,发现没有任何反应,连最简单的helloworld也没用。以为是jvm出问题了。这时才发现机器上还有一套1.6版本的jre&jdk,而我的eclipse默认使用的jre就是那个1.6版本!!6 用java -version 命令得到的也是1.6版本信息。注册表里current version 也是1.6。整个机器上一共有1.4,1.5,1.6三个版本现在不解的是,eclipse到底使用的是那套jdk&jre,是注册表里current version指定的1.6版本,还是我在环境变量里配置的1.5版本呀??
另外关于这个问题,查到有王深写的《深入j2sdk》讲解得比较详细,但是找不到这篇文章呀,
求大虾们解惑,或者给提供点资料呀
5 今天用eclipse运行程序,发现没有任何反应,连最简单的helloworld也没用。以为是jvm出问题了。这时才发现机器上还有一套1.6版本的jre&jdk,而我的eclipse默认使用的jre就是那个1.6版本!!6 用java -version 命令得到的也是1.6版本信息。注册表里current version 也是1.6。整个机器上一共有1.4,1.5,1.6三个版本现在不解的是,eclipse到底使用的是那套jdk&jre,是注册表里current version指定的1.6版本,还是我在环境变量里配置的1.5版本呀??
另外关于这个问题,查到有王深写的《深入j2sdk》讲解得比较详细,但是找不到这篇文章呀,
求大虾们解惑,或者给提供点资料呀
1 用java -version,显示1.6版本信息,javac等也能使用2 启动eclipse(里面默认的jre是1.6版本的),能够正常运行程序了!!
那么eclipse 是根据注册表里的current version 自动查找jre,把当前版本的jre设置为运行环境而不是查找环境变量java_home等??那么设置的环境变量有什么作用呢?
必须要重启呀,汗!!~~
但是原来的环境变量里面没有jdk1.6呀,我机器上环境变量里只设置了一个1.5版本
如果eclipse按照环境变量来找的话,应该是用我的1.5才对呀
ide指定jdk就可以了
ide指定jdk就可以了
直接在选项里面选择就可以了,干吗一定要删掉呢
java -version
看看
不过.我觉得ECLIPSE中,他应该也是会去读取注册表中的.JRE.然后设置的默认值...
你可以通过 WINDOW-->PROFERENCE-->JAVA-->INSTALLED JRES中去设置..
你的安装WEB服务器也可能指定JDK在CMD下用命令,我个人认为会用环境变量的中JDK.
哈哈,我现在想的也是跟你一样的
1. 使用哪个java.exe
机器上很多地方都有java.exe,cmd 里用java,实际是用path变量最前面一个,就是C:\WINDOWS\system32里面的2. 使用哪个jre
在哪个jre下启动java.exe呢,有个查找顺序:(1)java.exe当前目录(2)java.exe的父目录(3)注册表里current version下的版本号,该版本下有对应的JavaHome路径所以在我的机器上,cmd 里java时,首先找C:\WINDOWS\system32下,木有jre;然后是C:\WINDOWS\ 木有 jre;
最后通过注册表找到了1.6版本的jre,所以java -version 显示的是1.6版本
不管我是否给jdk1.5设置了环境变量,都不影响上面的结果二、eclipse 自动查找的jre
1. 照目前经验推测,eclipse 自动查找的是注册表里current version的值,然后选用该版本对应的jre(当然用户也可以自己指定jre,就像wrong1111 说的那样)2. 注意:这里跟环境变量一点关系也没有,eclipse基本开发不会用到环境变量。
据别人的经验,使用Tomcat时,需要环境变量。大概其他一些应用也会用到环境变量。