JPackage 版本错误(%JAVA_HOME% 设置为正确的目录)
JPackage Wrong Version (%JAVA_HOME% set to correct directory)
请帮忙。我在同步我的 JDK 和 jpackage 版本以创建独立的 java 程序时遇到问题。 JDK 版本和 jpackage 中包含的运行时版本不匹配(JDK16 个程序与 JDK15 个运行时配对)。
在命令行中输入java -version
,它与当前的%JAVA_HOME%
环境变量配置匹配,显示JDK16.0.2(位于C:\Program Files\Java\jdk-16.0.2
)。这工作正常。
然而,当我输入 jpackage --version
时,问题变得更加明显,它报告说它正在使用 JDK15.0.1 - 据我所知,我从未安装过,我正在不确定 运行 来自哪里。这是个问题,因为我需要能够使用 jpackage 构建 Java16 程序。就像现在一样,这会导致运行时和 JAR 文件不兼容。
我一直在谷歌搜索无济于事。我无法将我的 JDK16 程序编译成安装程序,因为它一直试图在运行时使用 JDK15.0.1。
现在,我通过这种方式手动访问 JDK16 的 jpackage exe 并在以下命令后添加命令,设法绕过了这个奇怪且看似锁定的配置:
“C:\Program Files\Java\jdk-16.0.2\bin\jpackage.exe”
任何建议都有帮助。也许这个临时解决方法对以后遇到同样问题的其他人有所帮助。
使用 Windows where
命令找出 jpackage
命令实际解析的内容。似乎很明显 jpackage
没有完整路径名在 Java.
的 不同 安装中解析为 jpackage
请注意,%JAVA_HOME%
不决定 Windows cmd.exe
如何解析命令。命令解析根据%PATH%
.
完成
您描述的症状:
jpackage
说 %JAVA_HOME%
不正确,但 %JAVA_HOME%
指的是 Java 16
jpackage -version
表示 Java 15(不是 Java 16)
"C:\Program Files\Java\jdk-16.0.2\bin\jpackage.exe"
有效
都与您的 %PATH%
不正确一致......并且您 确实 在您的计算机上安装了 Java 15,并且它是在 %PATH%
之前,或者代替您尝试使用的 Java 16 安装。
注意jpackage
在Java16中不再是“孵化器”工具。它已升级为完全支持;参见 JEP 392: Packaging Tool。因此,关于孵化器模块的警告也与 jpackage
解决错误的 Java 安装一致。
这实际上归结为了解 Windows %PATH%
变量是什么以及它如何影响 Windows 命令 shell 的行为。 (它类似于 Linux、UNIX 和 Mac OSX 命令 shell 中的 $PATH
。)
请帮忙。我在同步我的 JDK 和 jpackage 版本以创建独立的 java 程序时遇到问题。 JDK 版本和 jpackage 中包含的运行时版本不匹配(JDK16 个程序与 JDK15 个运行时配对)。
在命令行中输入java -version
,它与当前的%JAVA_HOME%
环境变量配置匹配,显示JDK16.0.2(位于C:\Program Files\Java\jdk-16.0.2
)。这工作正常。
然而,当我输入 jpackage --version
时,问题变得更加明显,它报告说它正在使用 JDK15.0.1 - 据我所知,我从未安装过,我正在不确定 运行 来自哪里。这是个问题,因为我需要能够使用 jpackage 构建 Java16 程序。就像现在一样,这会导致运行时和 JAR 文件不兼容。
我一直在谷歌搜索无济于事。我无法将我的 JDK16 程序编译成安装程序,因为它一直试图在运行时使用 JDK15.0.1。
现在,我通过这种方式手动访问 JDK16 的 jpackage exe 并在以下命令后添加命令,设法绕过了这个奇怪且看似锁定的配置:
“C:\Program Files\Java\jdk-16.0.2\bin\jpackage.exe”
任何建议都有帮助。也许这个临时解决方法对以后遇到同样问题的其他人有所帮助。
使用 Windows where
命令找出 jpackage
命令实际解析的内容。似乎很明显 jpackage
没有完整路径名在 Java.
jpackage
请注意,%JAVA_HOME%
不决定 Windows cmd.exe
如何解析命令。命令解析根据%PATH%
.
您描述的症状:
jpackage
说%JAVA_HOME%
不正确,但%JAVA_HOME%
指的是 Java 16jpackage -version
表示 Java 15(不是 Java 16)"C:\Program Files\Java\jdk-16.0.2\bin\jpackage.exe"
有效
都与您的 %PATH%
不正确一致......并且您 确实 在您的计算机上安装了 Java 15,并且它是在 %PATH%
之前,或者代替您尝试使用的 Java 16 安装。
注意jpackage
在Java16中不再是“孵化器”工具。它已升级为完全支持;参见 JEP 392: Packaging Tool。因此,关于孵化器模块的警告也与 jpackage
解决错误的 Java 安装一致。
这实际上归结为了解 Windows %PATH%
变量是什么以及它如何影响 Windows 命令 shell 的行为。 (它类似于 Linux、UNIX 和 Mac OSX 命令 shell 中的 $PATH
。)