日期:2014-05-20  浏览次数:20623 次

[求助]jdk1.4.2与jre1.5冲突,注册表设置
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安装程序好像检查注册表,而且老是喊错)?


------解决方案--------------------
当然不能,如果你的java程序是用jdk1.4编译的就必需在jre1.4上运行。

另外jre是java runtime environment (java运行环境),它是负责把编译好的java字节码(就是class)文件翻译成机器语言使之能够在机器上运行所必需的。


注册表中的信息其实没有太大的用处,一般只是起到在浏览器浏览applet的时候去注册表找jre。

只要你正确的设置了环境变量,就可以应用了。

比如你的系统重新安装了,重装之后在你的d盘上存在原来安装的jdk文件,但是这个时候你系统的注册表中肯定没有关于javasoft的注册信息,但是这个时候只要你正确的设置了环境变量,照样可以进行java程序的编译、运行。
------解决方案--------------------
1.4 编译的当然可以在 1.5下运行,但是反过来就不行了。
------解决方案--------------------
现在,还不能哦。
不过你要是用的JDK6.0的话就可以了哦。

------解决方案--------------------
我写程序,一直是在jdk1.4.2下编译,然后在jre1.5下运行的呀
从来没出过什么错误
------解决方案--------------------
哎 最简单的办法:
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的值设置为你要的版本就可以了
------解决方案--------------------

安装jre的时候注册表javasoft那个Java runtime lib下面我版本怎么摆,是按版本号大小,还是安装先后确定, 估计是安装先后顺序。

IE调用哪个?
c:/windows/system32/java.exe
java -version一下就知道用哪个了, 因为安装jre的时候会拷贝个java到system32, ie默认用的应该就是这个。