java - 在 linux 主机上创建 osx java 应用程序分发

标签 java linux macos jlink

我正在开发一个 java 应用程序(linux、java 10+),我想在其他平台上本地分发它。我成功地构建了一个 windows dist:在 linux 中使用 java 10+ windows dist jlinked,即,它用我的模块、java.exe 和相应的 dll 创建了一个目录(我验证它在 windows 上工作)。

问题是当我想构建一个 OSX dist(linux java 10 jlink + OSX java 10 dist)时,生成的文件夹有 java linux 可执行文件和 linux SO 库 而不是 osx dylib 库

我正在使用的命令行是(这适用于 linux 和 windows):

${JAVA_HOME}/bin/jlink --compress 2 --no-header-files --module-path target/classes/:"$TARGET_JDK_PATH"/jmods/ --add-modules jdk.crypto.cryptoki,$MODULE_NAME --output $OUTPUT_DIR

我也试过了

"$TARGET_JDK_PATH"/Contents/Home/jmods/

Linux 和 OSX Java 版本是 11.0.2。

提前致谢。

最佳答案

我解决了!

无法使用 JDK 10 (jlink) 构建目标为 JDK 11 (jmods) 的 dist。此外,必须指定

<target.osx.jdk>/Contents/Home/jmods

作为“jmods”目录。

无论如何,谢谢你的想法和建议。

关于java - 在 linux 主机上创建 osx java 应用程序分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259177/

相关文章:

c++ - 如何在 Mac 上使用 openGL 和 gcc?

java - 如何为 LinkedList<LinkedList<obj>> 实现可迭代

java - 从客户数组列表中返回客户

java - 自定义 Swing 控件 - 创建一个 Eclipse 风格的运行按钮

linux - AWK 每隔一列打印一次,从最后一列(和最后一列的旁边)开始进行 N 次交互(从右到左打印)

java - 即使容器很小,Docker 也会用完磁盘空间

java - 卡在绘制一组数据点 (x,y) 上

当前正在运行并记录到 stdout 的 linux 终端。如何使其输出静音?

Android AVD 不适用于硬件加速

objective-c - 使用内部列表时如何对 NSComboBox 上的条目进行排序