![](/img/trans.png)
[英]How can I run a jar file from my main Java app? Where jar file must be in my Java project
[英]How can i create executable apple .app file from my java .jar file?
我创建了一个可执行的Java Swing .jar应用程序。 在Windows上运行正常。 应用程序层次结构为:
application.jar
images(Folder)..........包含应用程序使用的所有图像。
library(Folder).......包含应用程序使用的所有外部jar库。
bundles(Folder).........包含应用程序使用的所有捆绑文件。
database(Folder)........包含应用程序使用的数据库文件。
上述所有文件夹都位于jar文件外部。 现在,我试图从“ application.jar”创建一个Mac可执行文件(.app)以在Mac上运行,因此我使用了此处指定的“ Jar Bundler”,但是当我运行输出application.app文件时,没有任何反应,没有任何反应运行,我什至无法调试它。
我认为主要原因是看不到外部文件夹。 因此,如果应用程序具有外部文件夹,则不可能创建.app文件吗? 有没有一种方法可以调试.app文件来查看发生了什么事?
没有任何运行,我什至无法调试它。
可以通过以下方式获得启动过程的诊断输出:
$ export JAVA_LAUNCHER_VERBOSE $ ./YourApplication.app/Contents/MacOS/JavaApplicationStub
有一个相关的例子在这里 。
问题很可能是您的工作目录。
通过双击运行可执行JAR文件时,工作目录是JAR文件的父目录。
默认情况下,应用程序捆绑包的工作目录是其父目录。 如果将外部文件夹打包到应用程序捆绑包中,它们将位于$APP_PACKAGE/Contents/Resources
。
因此,关于您为可执行JAR文件创建的工作目录的假设不适用于应用程序捆绑包。
为了将工作目录设置为资源目录,添加
<key>WorkingDirectory</key>
<string>$APP_PACKAGE/Contents/Resources</string>
到捆绑软件的Info.plist
文件。
如果您对应用程序捆绑包一无所知,请阅读此文档 。
这可能会有所帮助:Josh Marinacci提供的AppBundler
我不确定您的确切目录层次结构。 但是在装有Xcode的Mac上,有一个名为“ Jar Bundler”的应用程序。 它正是出于您所要求的目的而存在。 顺便说一句,Mac应用程序使用后缀.app,这是正确的。 但是它们不是文件。 Thery是目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.