java - Scala如何获取其JVM环境?

标签 java scala

开发环境:Scala 2.11.8、JDK 1.8.112 x64、Windows 7 x64。

问题: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\jdk8JAVA_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位于许多不同的文件夹中 - 其中一些可能是您之前安装的其他程序文件夹(即来自 Adob​​e 或 JetBrains 产品的文件夹)。

文件名相同,但版本可能不同(在大多数情况下)不同。

推荐的升级做法是什么? 安装并祈祷 ( Oracle itself has problems with it ) 或安装然后手动调整依赖于 Java 的每个应用程序。

关于java - Scala如何获取其JVM环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242190/

相关文章:

java.lang.ClassCastException : java. 使用 Univocity 时,util.Date 无法转换为 java.lang.String

scala - 为什么这个公共(public)字段有一个 PRIVATE 标志?

java - 如何在 Scala 中使用可变参数方法实现 Java 接口(interface)?

algorithm - 从两个字符串中创建一个唯一的散列

scala - 使用 JSON 隐式读取器

list - Scala 中用于列表减法的 "--"运算符

java - CDI : inject two generics from the same template

java - 在 webdriver 中维护浏览器 session

java - 如何在MainActivity中实现导航Activity和Recyclerview

java - 在 Java 中的 for 循环中显示 BufferedImages 数组