geo*_*kon 6 java appimage jpackage
我正在尝试使用 JPackage 创建 AppImage(在使用 OpenJDK 14 的 Ubuntu 18.04 系统上)
我找到的所有例子都是这样的形式
jpackage --type app-image --name myappimage --input target --main-jar myuberjar.jar --main-class myapplication.core --verbose
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我会得到一个目录./myappimage/,其中./myappimage/bin/有一个可执行文件,我可以启动它来运行该应用程序。但整个事情并没有像我希望的那样捆绑到一个 AppImage 文件中。
我在这里缺少什么?
虽然AppImage是一种理想的格式,但 JPackage(尚未)支持它。虽然JPackage 文档提到了命令行选项 app-image,但它的含义是不同的:
--app-image 文件路径 用于构建可安装包的预定义应用程序映像的位置(绝对路径或相对于当前目录的路径)。请参阅 create-app-image 模式选项来创建应用程序映像。
因此,app-image 文件夹只是 JPackage 在将应用程序转换为本机包(如 deb/msi/dmg)之前收集应用程序的所有零碎内容的文件夹。因此,不要对这两个不同但名称相似的概念感到困惑。
最好的方法是使用 JPackage 组装所需的所有内容(就像 app-image 的情况一样),然后使用 AppImage.org 提供的工具从那里获取它。变得更加简洁:
创建应用程序映像后告诉 JPackage 退出,如下所示:
jpackage --type app-image --dest app-image ...
Run Code Online (Sandbox Code Playgroud)
这将使您需要在应用程序图像目录中收集所有文件。不,不是全部。对于我的 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 的可执行文件。
设置该文件的可执行权限并运行它。
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |