jpackage 命令无法识别

Posted

技术标签:

【中文标题】jpackage 命令无法识别【英文标题】:jpackage command is not recognized 【发布时间】:2021-10-24 22:21:37 【问题描述】:

我正在尝试使用 Java 中的 jpackage 工具将 jar 文件打包成可执行文件,但是使用 Windows 10 和 Java 版本的命令提示符中无法识别该命令:

> java --version
java 17.0.1 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)

我已经安装了完整的 JDK,并且可以识别命令 javac。

我用“where java javac jpackage”命令检查了我的电脑,它只在 CommonFiles 文件夹中找到了前两个。

我查看了文件夹路径“ProgramFiles\Java\jdk-17.0.1\jmods”,“jdk.jlink.jmod”和“jdk.jpackage.jmod”文件都存在。

有人可以帮我弄清楚为什么 Windows 无法识别该工具吗?

【问题讨论】:

javac 被识别了吗? 你确定你有 JDK 而不仅仅是 JRE? 你需要一个完整的 JDK 嗯......这很奇怪,因为 Oracle 在 Java 8 之后停止发布“JRE”发行版。我想知道 OP 是否以不寻常的方式设置了 PATH? 您是否已经或以前在此系统上安装了较旧的 (where java javac jpackage(如果在powershell 中使用where.exe 来避免where-object 别名)并查看前两个实际上是否在\Program Files [(x86)]\Common Files\ProgramData 某处。在 CMD 中执行 path 并查找所有与 Oracle 相关的条目;在 powershell 中使用 $env:path -split ';' 更容易查看。 【参考方案1】:

我发现问题出在我为 Java 设置环境变量的方式上。为了解决我的问题,我进入了JAVA_HOME 变量并将条目从

C:\ProgramFiles\Java\jdk-17.0.1\lib

C:\ProgramFiles\Java\jdk-17.0.1

接下来我更新了path 变量以包含"%JAVA_HOME%\bin"。在我将其列为C:\ProgramFiles\Java\jdk-17.0.1\bin 之前。这两项更改都是使用“编辑”按钮在系统变量下进行的。我要感谢 dave_thompson_085 为我指明了正确的方向。

【讨论】:

我不相信这一点。当然,旧版本的JAVA_HOME 是不正确的。但是命令外壳不使用JAVA_HOME 来查找东西……通常。如果PATH 之前包含“C:\ProgramFiles\Java\jdk-17.0.1\bin”,那么命令外壳应该在“C:\ProgramFiles\Java\jdk-17.0.1\”中找到jpackage斌"

以上是关于jpackage 命令无法识别的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Discord bot 无法识别命令?

工匠命令无法识别

SBT 子项目无法识别插件命令

Cppcheck 无法识别命令

“emcc”命令无法识别

Rails 3 和 Paperclip:“'identify' 命令无法识别”