Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java属性命令显示Java 11的未分配JRE_主页_Java_Java 11 - Fatal编程技术网

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并做到这一点,但我真的在寻找一个解释。