虽然AppImage是一种理想的格式,但 JPackage (尚)不支持它。虽然JPackage 文档提到了一个命令行选项 app-image,但它的含义是不同的:
--app-image 文件路径 用于构建可安装包的预定义应用程序映像的位置(绝对路径或相对于当前目录)。请参阅 create-app-image 模式选项以创建应用程序映像。
因此,app-image 文件夹只是 JPackage 在将应用程序转换为像 deb/msi/dmg 这样的本机包之前收集应用程序的所有点点滴滴的文件夹。因此,不要对这两个不同但名称相似的概念感到困惑。
您最好的方法是使用 JPackage 来组装所需的一切(就像 app-image 的情况一样),然后使用 AppImage.org 提供的工具从那里获取它。变得更简洁:
告诉 JPackage 在创建 app-image 后退出,如下所示:
jpackage --type app-image --dest app-image ...
这会将您需要的所有文件收集在 app-image 目录中。不,不是全部。对于我的 OpenJDK(构建 16.0.1+9-Ubuntu-120.04),JPackage 命令忘记创建启动器(*.desktop 文件),并且在完成对 debian 包的构建时忘记安装该文件。看看我是怎么解决的。
从这里开始,您需要按照AppImage 打包指南创建 AppDir 目录结构,然后才能最终调用打包程序。我将 app-image 目录复制到 AppDir/usr 并在 AppDir 中创建了一些符号链接。还需要创建 .desktop 文件。最重要的是AppDir/AppRun
指向 AppDir/usr/bin/... 中可执行文件的符号链接。符号链接的名称必须是 AppRun。
最后按照手动打包并运行appimagetool。如何运行它的信息似乎只在README.md上。我最终得到了一个文件扩展名为 .appimage 的可执行文件。
在该文件上设置可执行权限并运行它。