【问题标题】:jpackage command is not recognizedjpackage 命令无法识别
【发布时间】: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 ';' 更容易查看。

标签: java jpackage


【解决方案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斌"
猜你喜欢
  • 1970-01-01
  • 2014-06-15
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多