jdk装的是1.4.2,但后来jre自己升级升成1.5了,
我的问题一是,能否jdk继续用原来的1.4.2而jre用1.5的?jdk装在C盘根目录下即C:\j2sdk1.4.2_12,在这个目录下有自己的jre(1.4.2_12),
但后来发现有C:\Program Files\Java这么个目录,并且其下包含各版本的jre(最高的是1.5.0_11),推测可能是网上升级jre时给装到默认目录下的,
java信息在windows registry的位置是在HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft下的,
发现Java Development Kit下是1.4,JavaHome为C盘根目录下那个,
但Java Runtime Environment下是1.15,且JavaHome为C:\Program Files\Java目录下的那个,
那么我的问题二是,系统使用的jre到底是C:\j2sdk1.4.2_12下的还是C:\Program Files\Java下的,而另一个jre是干啥用的(不会只是用来装饰的吧)?
那些注册表该怎么修改(TinyOS安装程序好像检查注册表,而且老是喊错)?

解决方案 »

  1.   

    当然不能,如果你的java程序是用jdk1.4编译的就必需在jre1.4上运行。另外jre是java runtime environment (java运行环境),它是负责把编译好的java字节码(就是class)文件翻译成机器语言使之能够在机器上运行所必需的。
    注册表中的信息其实没有太大的用处,一般只是起到在浏览器浏览applet的时候去注册表找jre。只要你正确的设置了环境变量,就可以应用了。比如你的系统重新安装了,重装之后在你的d盘上存在原来安装的jdk文件,但是这个时候你系统的注册表中肯定没有关于javasoft的注册信息,但是这个时候只要你正确的设置了环境变量,照样可以进行java程序的编译、运行。
      

  2.   

    1,哦,这么说来,那么 jdk其实就等于jre + bin下面的那几个小程序了,对吗?
    2,还有,1.4编的应该能在1.5运行吧,不然那么多版本的applet能运行在只有1.5jre的机器吗?
    3,还有,我装的jdk是1.4.2,而机器自己升jre升到1.5还把1.5设成默认了,而1.4(即里面那些bin小程序)依然是1.4,那么我机器是不是写不了java程序阿(感觉sun不能这么非user-friendly的)?
    4,那么每次我import的那些包,jdk编译时其实是去jre/lib下面去找的,对吗?
    5,最后,C:\Program Files\Java这个目录下的那几个jre是怎么回事?
       C:\Program Files\Java这么目录下一共有5个jre,
       j2re1.4.2_12,
       jre1.5.0_06,
       jre1.5.0_09,
       jre1.5.0_10,
       jre1.5.0_11,请见谅我这有些钻牛角尖的问题,
    因某些原因,我不能以删除重装等方式来统一jdk和jre的版本,
    所以得搞清楚这些机制才能正确设置classpath变量,
    而且还有一点是,
    记得以前看过一篇文章说jdk推荐装在C盘根目录下,具体原因忘了,而且我也很赞同,所以java_home目录下有个jre,
    再者,每个机器上C:\Program Files\Java这个目录下肯定有至少一个jre的,
    所以得搞清两者中谁是真货,才能正确设置classpath,
      

  3.   

    现在,还不能哦。
    不过你要是用的JDK6.0的话就可以了哦。
      

  4.   

    我写程序,一直是在jdk1.4.2下编译,然后在jre1.5下运行的呀
    从来没出过什么错误
      

  5.   

    to shengli_liao,
    那么你的javaclass里添加的是哪个?
    确切的说是哪个jre?C:\j2se1.4.2下面的还是C:\program files\java下面的?
      

  6.   

    哎  最简单的办法:
       C:\Program Files\Java这么目录下一共有5个jre,
       j2re1.4.2_12,
       jre1.5.0_06,
       jre1.5.0_09,
       jre1.5.0_10,
       jre1.5.0_11,
    把你不想要的jre直接删除就ok了,当然注意版本问题.再一个教你统一版本的方法:
    其实JDK可以不安装,你从别人的机器上考一份过来,然后随便放到一个位置,如:d:\jdk1.4
    然后设置系统环境变量:
        JAVA_HOME=d:\jdk1.4
        CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
        PATH=%JAVA_HOME%\bin
    就好了.同样你可以把你已经安装的jdk考到另外一个位置,然后按照上面类似的配置环境变量就可以了
    你也可以在你机器上用多个版本的jdk,想用哪个版本的时候,就把环境变量中JAVA_HOME的值设置为你要的版本就可以了
      

  7.   

    to yanhuaxie
    那个设环境变量的我知道,很早就已经那么做了,只是
    我不知道浏览器的那些在线jre用的是哪个,
    不知道是不是C:/program files/java下的那些,
    因为IE和某部分软件一直识别不了我手动设置的jdk,
      

  8.   


    安装jre的时候注册表javasoft那个Java runtime lib下面我版本怎么摆,是按版本号大小,还是安装先后确定, 估计是安装先后顺序。IE调用哪个?
    c:/windows/system32/java.exe
    java -version一下就知道用哪个了, 因为安装jre的时候会拷贝个java到system32, ie默认用的应该就是这个。