CoolBoyRay
2009-10-12 15:17
浏览 343
已采纳

JDK和JRE不同版本切换的问题

最近公司有2个项目,不同的服务器上JDK的版本不一样,我想在本机上同时装2个JDK和2个JRE,不知道有没人能提供一些好的切换的办法呢,不甚感激,在网上寻觅很久没发现答案,谢了。
注:我这边两个版本是1.4和1.5
问题补充

zhu_chen001 写道
启动时候设置不同的java_home即可

貌似这样做的话 运行JAVA -VERSION 查看版本的时候仍然没有改变,
HKEY_LOCAL_MACHINE“SOFTWARE“JavaSoft“Java Runtime Environment“CurrentVersion, 把这个键值改成你需要的jdk版本号
不知道修改这个会不会有什么严重的后果!
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • e_ville 2009-10-12 22:46
    已采纳

    都可以切换,不用改注册表。

    不管你设置JAVA_HOME为哪个,当你在控制台执行java -version的时候,使用的都是最后安装那个JRE,为啥呢?因为执行java.exe的时候,寻找jre的顺序是这样子的:
    1. 自己的目錄下有沒有 JRE目錄。(這個部分這樣說並不是非常精確,原因請詳見JDK原始碼,這此不特別說明)
    2. 父目錄底下JRE子目錄。
    3. 查詢 Windows Registry(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java
    Runtime Environment)

    通常当你直接在控制台下执行java -version,运行的C:\Windows\system32\java.exe,为什么会在这里有个java.exe?因为从JDK1.3开始,在安装JDK的时候会自动复制java.exe到C:\Windows\system32,加上path环境变量最前面的就是C:\Windows\system32,因此即使将JDK\bin加到path中,仍然是执行最先找到的java.exe。
    这个java.exe查找JRE时明显是按照上面的第3点来的。

    因此楼主如果想用不同的JRE,保证下面两点就行了:
    1. 那一個 java.exe 被執行。
    2. java.exe 找到哪一套 JRE。
    可以通过编写一个批处理脚本来进行,类似于WebLogic的启动脚本。

    建议楼主看看台湾王森先生写的《Java深度历险》一书,就有讲到这些问题。我上面贴的两段带繁体的就是从此书中Copy过来的咯……

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • zhu_chen001 2009-10-12 15:17

    启动时候设置不同的java_home即可

    评论
    解决 无用
    打赏 举报
  • iteye_3373 2009-10-12 15:17

    如果你是用IDE进行开发的话,是可以在IDE里面指定要用的JDK的

    评论
    解决 无用
    打赏 举报
  • wanghaolovezlq 2009-10-12 15:45

    在一个doc命令行可以设置不同的java_home环境变量嘛,

    搞两个bat批处理文件去启动不同的jvm就行了嘛

    评论
    解决 无用
    打赏 举报
  • CaiHuajiang 2009-10-12 18:35

    将PATH配置成%JAVA_HOME%\bin;%JAVA_HOME%\lib;%JAVA_HOME\jre\bin;%JAVA_HOME%\jre\lib;
    将CLASSPATH配置成%JAVA_HOME%\lib\dt.jar;
    那么通过配置不同的JAVA_HOME路径就可以实现JDK的切换了。

    至于jre只能安装一个,且通过java -version查看,是查看到jre的版本。

    jdk是供应用程序使用的,可以安装多个版本供不同的应用使用。
    而jre是作为客户端浏览器的程序使用的jvm,供applet程序调用,没办法进行切换。

    评论
    解决 无用
    打赏 举报
  • CaiHuajiang 2009-10-12 22:57

    Sorry,可能我从来对jre的理解有些偏颇。可能大家理解中的jre是Java Runtime Environment,只要是java的运行时环境可能就是jre。
    由于受sun的安装方式影响,它安装java时总是安装一个jdk目录,一个jre目录。该jre目录是供浏览器使用的运行时环境,因此我理解中的jre是这人。
    很抱歉,偶错啦。 :wink: :wink:
    不过不知道浏览器是否可以针对这个进行切换?

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题