刚刚发现机器上有一堆的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》讲解得比较详细,但是找不到这篇文章呀,
求大虾们解惑,或者给提供点资料呀

解决方案 »

  1.   

    我也装了三个jdk, 你只需要在ide里面指定你想要的jdk就可以了.系统环境变量也要把你的java路径设置好.
      

  2.   

    如果不指定的话,Eclipse使用的是你机器上环境变量最前面的那个JDK,从你所说的情况来看,应该是JDK 1.6如果需要制定,那么需要在Eclipse的快捷方式上面增加启动参数 -vm D:\jdk1.5.0\bin\javaw.exe
      

  3.   

    我现在非常不明白,在那些情况下会运行那些jdk为了实验,刚刚把相关环境变量全部删除了(原来设置的环境变量跟1.5版本关联)然后
    1 用java -version,显示1.6版本信息,javac等也能使用2 启动eclipse(里面默认的jre是1.6版本的),能够正常运行程序了!!
    那么eclipse 是根据注册表里的current version 自动查找jre,把当前版本的jre设置为运行环境而不是查找环境变量java_home等??那么设置的环境变量有什么作用呢?
      

  4.   

    在哪里下JDK1.6?? 我下了个,发现只是Jre,哪里有jdk1.6啊,楼上的提供个地址,谢谢啦
      

  5.   

    IDE里肯定会默认或指定一个jre
      

  6.   

    to : youjianbo_han_87 这个机器原来不是偶在用,偶刚刚接手的,所以才有那么多麻烦了jdk1.6偶也不知道哪里下的-_-!!to :aniude
    必须要重启呀,汗!!~~
    但是原来的环境变量里面没有jdk1.6呀,我机器上环境变量里只设置了一个1.5版本
    如果eclipse按照环境变量来找的话,应该是用我的1.5才对呀
      

  7.   

    那就看看eclipse是不是在注册表指定了jdk 1.6
      

  8.   

    1.5后就不用设classpath了。
    ide指定jdk就可以了
      

  9.   

    1.5后就不用设classpath了。
    ide指定jdk就可以了
      

  10.   

    IDE里面就可以设置使用的编译环境啊~
    直接在选项里面选择就可以了,干吗一定要删掉呢
      

  11.   

    偶的eclipse是绿色版的,直接运行,所以不会写注册表~
      

  12.   

    偶就是想知道,eclipse 运行的时候,根据什么检测它要使用的jdk&jre?还有平时在cmd里面用java命令时,使用的又是哪一套jdk&jre呢?注册表里的current version值对这些工具运行又会有什么影响呢?
      

  13.   

    看注册表或者在控制台下面输入
    java -version
    看看
      

  14.   

    哈哈,楼上的仁兄跟我的机器差不多呀...我也是1.4,,1.5 .1.6的都装了...
    不过.我觉得ECLIPSE中,他应该也是会去读取注册表中的.JRE.然后设置的默认值...
    你可以通过 WINDOW-->PROFERENCE-->JAVA-->INSTALLED JRES中去设置..
    你的安装WEB服务器也可能指定JDK在CMD下用命令,我个人认为会用环境变量的中JDK.
      

  15.   

    同意楼上的,只有设了观景变量,才能在cmd中使用
      

  16.   

    偶是木有看书呀,不过好像以前看的书里也没怎么讲这个呀昨天晚上到台湾那个论坛下了王森的java2sdk探险,刚刚看完第一章,有点通了
    哈哈,我现在想的也是跟你一样的
      

  17.   

    现在有点头绪了,小小整理一下前提:我是在原机器有1.6版本jdk的情况下,再安装1.5的,所以注册表里current version的值仍然是最高版本:1.6一、cmd 里使用java:
    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时,需要环境变量。大概其他一些应用也会用到环境变量。