Jpackage 'invalid option [class]' 创建 linux DEB 形成 jar 文件时出错
Jpackage 'invalid option [class]' error when creating linux DEB form a jar file
我在 Windows 平台上使用 JDK 16.0.1 环境。我通过在我的 NetBeans 上使用 Java 和 Ant 创建了我的 java 代码的 jar 文件。这些是我用来从 jar 文件创建 DEB 文件的命令行:
jpackage --input D:\Fida\Codeblocks\Java\Projects\MultipleClass\dist\MultipleClass.jar --name Multiple Class --main-jar D:\Fida\Codeblocks\Java\Projects\MultipleClass\dist\MultipleClass.jar --main-class parent.Parent --type deb --java-options 'enable-preview'
在这里,输入属性是我的jar 文件所在的位置。 name 属性是生成后的 DEB 文件的名称。 main-jar 属性也是我要转换为 DEB 的 jar 文件的位置。 main-class属性是jar文件的mainclass,本例'parent.Parent.'是我从jar文件中的Manifest.mf获取的。 type 属性是我要转换的 jar 文件,在本例中是 'deb.' 最后是 options 属性(我不明白。我只是从 this site 复制粘贴了整个命令)。
但是当我按下回车键时,出现了这个错误:Error: Invalid Option: [Class].
而且我确信某处有错误。我什至 运行 在我的 Linux 系统上使用相同的 JDK 版本执行相同的命令。然后我得到了这个:
java.nio.file.FileAlreadyExistsException: /tmp/jdk.jpackage16852425662219297051/images/src/MultipleClass/lib/app
我现在不知道怎么办。除了这个错误的解决方案,我也很感激将 jar 转换为 Linux 可执行文件的任何其他建议。
Multiple Class
在 Windows(CMD 和 PS)和任何 Unix shell。 Error: Invalid Option [Class]
告诉您第二个参数未被视为 --name
值的一部分,而是被视为一个新选项,并且它不是一个选项,因此它无效。为了使它成为一个参数并因此有效,要么省略 space 要么在它周围加上引号(仅在 CMD 上 " "
,在 PS 或非奇怪的 Unix 上 " "
或 ' '
).由于至少在大多数 Unix 变体(包括 deb 和 rpm)上 package/installer 文件名通常不包含 space,因此前者可能更好。
但是正如您在 link 页面的第 4 步中正确指出的那样,jpackage 必须是 运行 您所定位的 OS 类型;你只能从'deb'(或'rpm')Linux打包。并且 --input
应该是包含 jar 的目录 而不是实际的 jar,如该页面上的尾部斜杠所示。
我在 Windows 平台上使用 JDK 16.0.1 环境。我通过在我的 NetBeans 上使用 Java 和 Ant 创建了我的 java 代码的 jar 文件。这些是我用来从 jar 文件创建 DEB 文件的命令行:
jpackage --input D:\Fida\Codeblocks\Java\Projects\MultipleClass\dist\MultipleClass.jar --name Multiple Class --main-jar D:\Fida\Codeblocks\Java\Projects\MultipleClass\dist\MultipleClass.jar --main-class parent.Parent --type deb --java-options 'enable-preview'
在这里,输入属性是我的jar 文件所在的位置。 name 属性是生成后的 DEB 文件的名称。 main-jar 属性也是我要转换为 DEB 的 jar 文件的位置。 main-class属性是jar文件的mainclass,本例'parent.Parent.'是我从jar文件中的Manifest.mf获取的。 type 属性是我要转换的 jar 文件,在本例中是 'deb.' 最后是 options 属性(我不明白。我只是从 this site 复制粘贴了整个命令)。
但是当我按下回车键时,出现了这个错误:Error: Invalid Option: [Class].
而且我确信某处有错误。我什至 运行 在我的 Linux 系统上使用相同的 JDK 版本执行相同的命令。然后我得到了这个:
java.nio.file.FileAlreadyExistsException: /tmp/jdk.jpackage16852425662219297051/images/src/MultipleClass/lib/app
我现在不知道怎么办。除了这个错误的解决方案,我也很感激将 jar 转换为 Linux 可执行文件的任何其他建议。
Multiple Class
在 Windows(CMD 和 PS)和任何 Unix shell。 Error: Invalid Option [Class]
告诉您第二个参数未被视为 --name
值的一部分,而是被视为一个新选项,并且它不是一个选项,因此它无效。为了使它成为一个参数并因此有效,要么省略 space 要么在它周围加上引号(仅在 CMD 上 " "
,在 PS 或非奇怪的 Unix 上 " "
或 ' '
).由于至少在大多数 Unix 变体(包括 deb 和 rpm)上 package/installer 文件名通常不包含 space,因此前者可能更好。
但是正如您在 link 页面的第 4 步中正确指出的那样,jpackage 必须是 运行 您所定位的 OS 类型;你只能从'deb'(或'rpm')Linux打包。并且 --input
应该是包含 jar 的目录 而不是实际的 jar,如该页面上的尾部斜杠所示。