Java属性命令显示Java 11的未分配JRE_主页
我完全按照建议做了,并运行了命令Java属性命令显示Java 11的未分配JRE_主页,java,java-11,Java,Java 11,我完全按照建议做了,并运行了命令java-XshowSettings:properties-version。这确实在我的控制台上输出了大量信息,但有一行是%JRE_HOME%\bin,这意味着它查找了JRE_HOME,但找不到任何相应的值 编辑1:开始 上述命令的输出: java.library.path = C:\Softwares\java\AdoptOpenJDK\JDK-11\OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9\jdk-11
java-XshowSettings:properties-version
。这确实在我的控制台上输出了大量信息,但有一行是%JRE_HOME%\bin
,这意味着它查找了JRE_HOME
,但找不到任何相应的值
编辑1:开始
上述命令的输出:
java.library.path = C:\Softwares\java\AdoptOpenJDK\JDK-11\OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9\jdk-11.0.10+9\bin
C:\WINDOWS\Sun\Java\bin
.
.
.
C:\Softwares\Gradle\gradle-6.8.1-all\gradle-6.8.1\bin
C:\Softwares\java\AdoptOpenJDK\JDK-11\OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9\jdk-11.0.10+9\bin
%JRE_HOME%\bin
C:\Softwares\Groovy\apache-groovy-sdk-3.0.0\bin
.
.
.
.
.
java.runtime.name = OpenJDK Runtime Environment
java.runtime.version = 11.0.10+9
java.specification.name = Java Platform API Specification
>java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
编辑1:END
我的JDK版本:
java.library.path = C:\Softwares\java\AdoptOpenJDK\JDK-11\OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9\jdk-11.0.10+9\bin
C:\WINDOWS\Sun\Java\bin
.
.
.
C:\Softwares\Gradle\gradle-6.8.1-all\gradle-6.8.1\bin
C:\Softwares\java\AdoptOpenJDK\JDK-11\OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9\jdk-11.0.10+9\bin
%JRE_HOME%\bin
C:\Softwares\Groovy\apache-groovy-sdk-3.0.0\bin
.
.
.
.
.
java.runtime.name = OpenJDK Runtime Environment
java.runtime.version = 11.0.10+9
java.specification.name = Java Platform API Specification
>java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
我知道JRE不再像以前一样捆绑在单独的JRE
目录中,直到JDK 8。我在SO上浏览了几篇文章,寻找关于为JDK 11设置JRE的指导,但这没有帮助,因为没有人解释是否需要为任何其他服务/应用程序设置JRE_HOME才能正常运行
为什么运行上述命令会抱怨没有JRE_主页
但是,当我将其JRE Home指向java Home目录时,Spring STS没有抱怨。在JRE_Home变量中设置与jdk相同的路径。“…坐在一行上”该行属于哪个属性
java.library.path
或sun.boot.library.path
它是java.library.path
。我刚刚更新了我的帖子。Java从不需要JRE\u HOME
变量。与JAVA\u HOME
类似,它只是由第三方应用程序建立的约定。在java.library.path
系统属性中有%JRE\u HOME%\bin
的最可能原因是有人将path
变量设置为包含%JRE\u HOME%\bin
。我看不出命令在哪里“抱怨”缺席条目。您可以在您的路径中任意多地包含不存在的条目,最糟糕的情况是,在搜索库时会稍微减慢速度。谢天谢地,Java足够聪明,可以将自己的库位置放在路径的开头,也许我这里遗漏了一些东西。但是,即使Java库位置在序列中排在第一位,如果任何服务/应用仍然使用%JRE\u HOME%
env变量来获取可执行文件,该怎么办。这将导致任何应用程序/服务中断。如果是,那么我应该如何设置我的%JRE_HOME%。我是否应该遵循springsts方法,将我的JRE\u HOME
指向%JAVA\u HOME%。当然,这取决于特定应用程序如何使用JRE_HOME
,以及它希望在那里找到什么。也许,它所做的只是将%JRE\u HOME%\bin
添加到路径
,认为它很有用。也许,它试图在那里找到一个JDK11中根本不存在的文件。第一种情况不需要任何操作,第二种情况在不更新或更换特定软件的情况下无法解决。当然,这两种情况之间有很大的差异。在不知道申请的情况下是不可能说出来的。谢谢,但这并不能回答我的问题。我本可以遵循Spring STS并做到这一点,但我真的在寻找一个解释。