我在MANIFEST文件中创建了一个具有以下内容的可运行jar。当在eclipse中运行主类并且使用在我的eclipse中设置的JAVA_HOME时,此方法运行良好。我还将环境变量JAVA_HOME设置为本地的JDK安装路径。现在的问题是,如果使用下面的命令运行相同的jar,它将采用不同的路径而不是JAVA_HOME环境变量。
我尝试从命令行运行以下命令,但仍无法按预期运行
set JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_211 java -jar my-jar-name.jar
在我的源代码中,我正在使用System.getProperty(“ java.home”)进行打印 C:\ Program Files \ Java \ jre1.8.0_211。但是我在环境变量中将JAVA_HOME设置为C:\ Program Files \ Java \ jdk1.8.0_211。如果我在命令行上手动运行echo%JAVA_HOME%,它将正确打印。
我希望我的jar如下打印JAVA_HOME。 C:\ Program Files \ Java \ jdk1.8.0_211 但是实际打印在下面。 C:\ Program Files \ Java \ jre1.8.0_211
没有错误
答案 0 :(得分:0)
您想使用System.getenv("JAVA_HOME")
,它读取用于指向您的JDK的环境变量。使用System.getProperty("java.home")
是一个系统属性,它将指向您已安装的JRE。 This post详细介绍了两者之间的区别。