我安装了多个版本的JDK
,包括1.6
、1.7
、1.8
。
我想知道当我运行需要JRE
的软件时,执行的是哪个版本的java.exe
。我做了一些测试,见下文:
测试:
cmd.exe 命令: echo %java_home%
打印: java 版本“1.8.0_31”
cmd.exe 命令: java -version
打印: java 版本“1.8.0_31”
然后查看HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.8
中的注册表,得到javaHome
键值
结果: C:\Program Files\Java\jdk1.8.0_31
。
java 代码: System.out.println(System.getProperty("java.home"));
打印: C:\Program Files (x86)\Java\jdk1.7.0_15\jre
最后,我打开任务管理器,搜索java.exe
进程,找到java.exe
目录在:
结果: C:\Program Files (x86)\Java\jdk1.7.0_15\bin
问题:
我很困惑计算机选择了哪个 jave.exe
文件。你能帮忙吗?
最佳答案
被动方法
您可能想要 where
windows 命令行实用程序的功能;假设您的 %PATH%
尝试:
where java.exe
如果你有多个版本的 java pin 你的 %PATH% 这将返回多个值。 (不幸的是)
主动方法
这样设置你的环境:
让您的 PATH
环境变量仅指向c:\tools\java\default
将所有jre存储在一个文件夹中
C:\tools\Java\JRE_1.6
C:\tools\Java\JRE_1.7
C:\tools\Java\JRE_1.8
然后打开命令提示符并在 C:\tools\Java\
中执行
junction default JRE_1.6
这将创建一个 junction (这或多或少像一个符号 lync)。
通过这种方式,您将始终在 c:\tools\java\default
中拥有默认的 java。
如果您随后需要将默认 java 更改为您只需要执行的 1.8 版本
junction -d default
junction default JRE_1.8
关于java - 多个版本的 "JDK",执行哪个 "java.exe"文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34392210/