我想出了编写Info.plist文件以打包mac应用程序的一些基础知识。我遇到了一个有点恼人的问题。我有一个jar文件,它是应用程序的主要入口点。 plist文件有一个启动器设置为CFBundleExecutable。此启动程序打开jar文件。
有2个jar文件。 jar 1由启动器调用并检查更新并执行它们。然后当它完成时,jar 1执行jar 2.一旦jar 2执行,plist文件给出的信息似乎消失了。 CFBundleIcon和CFBundleDisplayName返回默认的java。
我猜这是因为启动器脚本不再运行而且所有plist设置都设置为该启动器。我怎样才能尽可能轻松地解决这个问题?我可以在.app中为jar 2嵌套另一个.app吗?有没有Info.plist解决方案?它没有破坏任何功能,它只是看起来不专业。
包裹内容是 应用 - >内容 - > MacOs - > [jar1,jar2,launcher,sharedAccessFiles]
我使用:
从jar 1调用jar 2ProcessBuilder pb = new ProcessBuilder(pathToJava "-jar", pathToJar2, "-Xdock:icon=" + pathToIcon, "-Xdock:name=AppName");
这似乎没有改变任何东西。顶部栏仍然说java,图标保持不变。
答案 0 :(得分:0)
启动JAR#2时,请使用以下参数:
-Xdock:icon = pathToIconFile设置Dock中显示的图标。默认情况下,除非您指定,否则OS X会显示通用Java图标 除此以外。您只需将此用于从中启动的应用程序 命令行或来自JAR文件。双击应用程序 bundle在Info.plist文件中指定他们的图标。
-Xdock:name = applicationName设置要在Dock和菜单栏中显示的名称。默认情况下,OS X显示完全限定名称 除非另有说明,否则为主类。你只需要使用它 对于从命令行或JAR文件启动的应用程序。 可双击的应用程序包从中获取相应的名称 Info.plist文件。