OSX 上命令行的 Javapackager 工具?
Javapackager tool from command-line on OSX?
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/ 的起源,就没有它们的迹象。
我能找到的关于该主题的唯一其他讨论是大约一年半前的博客 post 和邮件列表:
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 'by default' 了,但这就是为什么我希望将我的应用程序作为一个独立的包发布的原因自己的虚拟机。更新我的 bash 配置文件以明确指向该工具是否是标准程序?我的个人设置是否有问题,或者 OSX 上的工具支持是否存在差距?
PS:我发现下面有一个关于这个主题的旧线程:
What is the best way to deploy JavaFX application, create JAR and self-contained applications and native installers
但是,这将 javapackager 描述为 .jar 文件,而我得到的任何东西似乎都不是 .jar 文件。我对我应该用它做什么感到困惑。
编辑:感谢大家的提示 - 我想我现在有足够的信息可以继续了。
您可以从 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。
My personal preference would be to just use Ant, but I guess that's only slightly less old-school?
是的,并不是说这有什么问题。 Documentation on using Ant to package java client applications 由 Oracle 提供。
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/ 的起源,就没有它们的迹象。
我能找到的关于该主题的唯一其他讨论是大约一年半前的博客 post 和邮件列表: 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 'by default' 了,但这就是为什么我希望将我的应用程序作为一个独立的包发布的原因自己的虚拟机。更新我的 bash 配置文件以明确指向该工具是否是标准程序?我的个人设置是否有问题,或者 OSX 上的工具支持是否存在差距?
PS:我发现下面有一个关于这个主题的旧线程:
What is the best way to deploy JavaFX application, create JAR and self-contained applications and native installers
但是,这将 javapackager 描述为 .jar 文件,而我得到的任何东西似乎都不是 .jar 文件。我对我应该用它做什么感到困惑。
编辑:感谢大家的提示 - 我想我现在有足够的信息可以继续了。
您可以从 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。
My personal preference would be to just use Ant, but I guess that's only slightly less old-school?
是的,并不是说这有什么问题。 Documentation on using Ant to package java client applications 由 Oracle 提供。