都可以切换,不用改注册表。
不管你设置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过来的咯……