2

javapackager 和 javafxpackager 在我的命令行上似乎没有被识别。即使我安装了最新的 1.8 SDK,它们也不会出现在终端中。(即使是 'echo $JAVA_HOME' 似乎也是空白,尽管 java -version 似乎工作正常。)

如果我在 /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/ 下查看,我可以看到 javapackager 和 javafxpackager 工具存在,但如果我按照 /usr/libexec/java_home 回到它的起源/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/ ,没有它们的迹象。

我能找到的关于这个主题的唯一其他讨论是大约一年半前的一篇博客文章和邮件列表: https ://devreboot.wordpress.com/2014/11/26/java-desktop-app-packaging-自动化/ http://lists.apple.com/archives/java-dev/2015/Nov/msg00009.html

我意识到 OSX 已经有一段时间没有“默认”提供 java 了,但这就是为什么我希望将我的应用程序作为一个带有它自己的 VM 的独立包发布。更新我的 bash 配置文件以明确指向该工具是否是标准程序?我的个人设置是否有问题,或者 OSX 上的工具支持是否存在一些差距?


PS:我意识到下面有一个关于这个主题的旧线程: 部署 JavaFX 应用程序、创建 JAR 和自包含应用程序以及本机安装程序的最佳方法是什么

但是,这将 javapackager 描述为 .jar 文件,而我所拥有的似乎都不是 .jar 文件。我对我应该用它做什么感到很困惑。

编辑:感谢大家的提示-我想我现在有足够的信息继续下去。

4

1 回答 1

3

您可以尝试使用此要点从 OS X 命令行在Java 客户端应用程序上构建、打包和运行测试安装。不能保证它会为你工作,这只是我很久以前为个人发展目的而准备的东西。但是,那里的信息可能有助于从命令行解析打包工具的位置,也有助于执行其他与打包相关的功能。

定位(和使用)的关键部分javapackager是:

# select java version
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
$JAVA_HOME/bin/java -version
...
# make an executable jar file
$JAVA_HOME/bin/javapackager -createjar -srcdir . -appclass start.HelloWorldSwing -srcfiles HelloWorldSwing.jar -outdir . -outfile HelloWorld.jar

# package the jar and java runtime as a native application with installer
$JAVA_HOME/bin/javapackager -deploy -srcdir . -srcfiles HelloWorld.jar -outdir . -outfile HelloWorld -appclass start.HelloWorldSwing -native -name HelloWorld

请注意,以上内容用于打包 Swing 应用程序。打包 JavaFX 应用程序将使用打包程序的命令行选项略有不同。

从命令行脚本以这种方式做事绝对是老派,通常使用maven或 gradle。

我个人的偏好是只使用 Ant,但我想这只是稍微不那么老派了?

是的,并不是说这有什么问题。 Oracle 提供了有关使用 Ant 打包 java 客户端应用程序的文档。

于 2016-06-05T07:53:47.927 回答