Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSX上命令行的Javapackager工具?_Java_Bash_Macos_Javafx_Javapackager - Fatal编程技术网

OSX上命令行的Javapackager工具?

OSX上命令行的Javapackager工具?,java,bash,macos,javafx,javapackager,Java,Bash,Macos,Javafx,Javapackager,javapackager和javafxpacker在命令行中似乎没有被识别。即使我安装了最新的1.8SDK,它们也不会出现在终端中。(即使是“echo$JAVA_HOME”似乎也是一片空白,尽管JAVA版本似乎运行良好。) 如果我在/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/下查看,我可以看到javapackager和javafxpackager工具存在,但是如果我在/System/libexec/Jav

javapackager和javafxpacker在命令行中似乎没有被识别。即使我安装了最新的1.8SDK,它们也不会出现在终端中。(即使是“echo$JAVA_HOME”似乎也是一片空白,尽管JAVA版本似乎运行良好。)

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

我能找到的关于这个主题的其他讨论只有一篇博客文章和一年半前的邮件列表:

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


附言:我意识到下面有一条关于这个主题的老线索:

然而,这将javapackager描述为一个.jar文件,而我得到的似乎不是一个.jar文件。我有理由对我该如何处理它感到困惑

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

您可以从OSX命令行尝试这一点。不保证它会对你有用,这只是我很久以前为了个人发展的目的而做的事情。但是,其中的信息可能有助于从命令行解析打包机工具位置,以及执行其他打包相关功能

查找(和使用)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应用程序将使用与打包程序略有不同的命令行选项

从命令行脚本这样做显然是老生常谈,通常使用的是或gradle

我个人的偏好是只使用Ant,但我想这只是稍微少一点老派


是的,并不是说这有什么问题。是由Oracle提供的。

您是否可以直接执行它们,例如
/Library/Java/JavaVirtualMachines/jdk1.8.091.jdk/Contents/Home/bin/javapackager
?他们不在路上是你可以解决的问题。这些工具可能只是一个shell脚本,用于启动隐藏在.jar中其他地方的程序。当它工作时,我不在乎它是什么。试试
$(/usr/libexec/java\u home)/bin/javapackager-help
。是的,我做了一个bash导出来正确设置java\u home,现在$java\u home/bin/javapackager给了我一个手册页。不过,我感到困惑的是,在安装SDK时,这并不是默认设置的。我将尝试将一个实际的.dmg放在一起,然后看看会发生什么;使用
$(/usr/libexec/java\u home-version)
进行选择。谢谢,我非常感谢代码示例。实际上,我正在使用LibGDX进行游戏开发,它附带了一个基于gradle的安装实用程序,但当我查阅他们关于使用自己的嵌入式JVM生成独立应用程序的文档时,它又回到了中世纪——要么是Launch4J,要么是AppBundler,要么是其他第三方解决方案的补丁。我个人的偏好是只使用Ant,但我想这只是稍微少一点老派?