【问题标题】:Jpackage 'invalid option [class]' error when creating linux DEB form a jar file从 jar 文件创建 linux DEB 时 Jpackage 'invalid option [class]' 错误
【发布时间】:2021-06-19 09:08:57
【问题描述】:

我在带有 JDK 16.0.1 环境的 Windows 平台上。我通过在我的 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 文件的主类,在本例中为“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 可执行文件的建议。

【问题讨论】:

    标签: java linux executable-jar jpackage


    【解决方案1】:

    Multiple Class 是 Windows(CMD 和 PS)和任何 Unix shell 中的 两个 参数(又名标记或单词)。 Error: Invalid Option [Class] 告诉您第二个参数没有被视为 --name 值的一部分,而是作为一个新选项,它不是一个选项,因此它无效。要使其成为一个参数并因此有效,要么省略空格,要么在其周围加上引号(仅在 CMD 上 " ",在 PS 或非奇怪的 Unix 上 " " 或 ' ')。由于至少大多数 Unix 变体(包括 deb 和 rpm)上的包/安装程序文件名习惯上不包含空格,因此前者可能更好。

    但正如您链接页面的第 4 步中正确说明的那样,jpackage 必须在您所针对的操作系统类型上运行;您只能从 Linux 中打包 'deb'(或 'rpm')。 --input 应该是 包含 jar 的目录,而不是实际的 jar,如该页面上的尾部斜杠所示。

    【讨论】:

    • 如你所说,我做了一些更正。 (1) 我从我的 Linux 终端使用 jpackage 命令。 (2) 我从 --input 属性中删除了“MultipleClass.jar”,因为您说它应该只包含 jar 存在的目录。然后,我输入的最后一个命令是: jpackage --input /home/kali/Desktop/ --name MultipleClass --main-jar /home/kali/Desktop/MultipleClass.jar --main-class parent.Parent - -type deb --java-options '启用预览';按回车后,完成命令大约需要一分钟。但我无法在任何地方找到 DEB 文件。怎么了?
    • 它应该在工作目录中,除非你以某种方式错过了错误。
    猜你喜欢
    • 2015-12-24
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2011-05-14
    • 1970-01-01
    • 2013-07-08
    相关资源
    最近更新 更多