开发环境:Scala 2.11.8、JDK 1.8.112 x64、Windows 7 x64。
- 将 JDK 更新到最新版本 JDK 1.8.112
- 卸载了 Scala 2.11.7 并安装 Scala 2.11.8
- 重新启动
问题:Scala 仍然看到以前的 JDK 1.8.101,而不是新的 1.8.112。
C:\Users\myUserName>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
C:\Users\myUserName>scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.
scala> System.getProperty("java.version")
res3: String = 1.8.0_101
原因是新的 JDK 安装在 C:\Program Files\Java\jdk1.8.0_112
中,而之前的 JDK 安装在 C:\Program Files\Java\jdk8
。 JAVA_HOME = C:\Program Files\Java\jdk8。所以我想这就是 Scala 看到以前版本的原因。然而,路径
C:\Users\myUserName>PATH
PATH=C:\ProgramData\Oracle\Java\javapath;
... etc...
C:\Program Files (x86)\scala\bin;C:\Program Files\Java\jdk8\bin;
C:\ProgramData\Oracle\Java\javapath 包含来自最新 JDK 的 java.exe。这就是为什么命令行中的 java -version 显示最新的 JDK。
问题:在Windows上,如何使最新的JDK成为官方JDK?一般来说,在 Windows 上更新 JDK 的推荐做法是什么?
最佳答案
java
命令执行 PATH
环境变量的第一个文件夹中的 java.exe
文件。找到文件。
另一方面,scala
命令执行scala.bat
批处理文件,并且该文件通过JAVA_HOME
环境变量设置scala的java环境,如果它存在。
问题是,在几乎每个系统中,文件java.exe
位于许多不同的文件夹中 - 其中一些可能是您之前安装的其他程序文件夹(即来自 Adobe 或 JetBrains 产品的文件夹)。
文件名相同,但版本可能不同(在大多数情况下)不同。
推荐的升级做法是什么? 安装并祈祷 ( Oracle itself has problems with it ) 或安装然后手动调整依赖于 Java 的每个应用程序。
关于java - Scala如何获取其JVM环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242190/