OSX上命令行的Javapackager工具?

时间:2016-06-04 23:46:20

标签: java bash macos javafx javapackager

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-automation/ http://lists.apple.com/archives/java-dev/2015/Nov/msg00009.html

我发现OSX默认情况下还没有使用java',但这就是为什么我希望将我的应用程序作为一个独立的软件包与它自己的VM一起发布。更新我的bash配置文件以明确指向该工具是否是标准程序?我的个人设置是否有些棘手的问题,或者OSX上的工具支持是否存在一些差距?


PS:我意识到下面这个主题有一个较旧的主题: What is the best way to deploy JavaFX application, create JAR and self-contained applications and native installers

但是,它将javapackager描述为.jar文件,而且我得到的任何东西似乎都不是.jar文件。我对我应该用它做什么感到困惑。

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

1 个答案:

答案 0 :(得分:3)

您可以从OS X命令行尝试此gist for building, packaging and running a test install on Java client apps。不能保证它对你有用,这只是我很久以前为个人发展目的而掀起的。但是,其中的信息可能有助于从命令行解析打包工具位置以及执行其他与打包相关的功能。

查找(和使用)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,但我想这只是稍微不那么老了吗?

是的,并不是说有什么不妥。 Documentation on using Ant to package java client applications由Oracle提供。