【发布时间】:2015-02-16 09:05:08
【问题描述】:
问题:如何创建一个可以默认打开多个实例的Mac应用程序?
通常,Mac 应用程序包维护一个 Mac 程序实例。也就是说,如果我双击“VLC”,它将打开 VLC 程序。如果我再次双击,它将把以前的 VLC 窗口带到前台;它不会打开 VLC 的新实例。但是如果我在 VLC 上运行“open -n”,它会强制 VLC 打开第二个实例。
我正在创建一个 Mac 应用程序包,并希望用户第二次双击以启动该应用程序的第二个实例。我找不到在 Info.plist 中使用的任何相关键。有什么想法吗?
【问题讨论】:
-
XCode ?吗?爪哇? ... ?
-
使用 Oracle 的 AppBundler 捆绑的 Java 应用程序:java.net/projects/appbundler。在执行启动的 .app/Contents/MacOS 中生成“JavaAppLauncher”二进制文件。 JavaAppLauncher 二进制文件的创建发生在 main.m 中:java.net/projects/appbundler/sources/svn/show/appbundler/…
-
JavaAppLauncher 是一个通用的 Mac 二进制启动器,它解析来自 Info.plist 的选项,然后使用这些选项启动 Java。它的源代码在这里:java.net/projects/appbundler/sources/svn/show/appbundler/…。我假设 Launcher 的相关性较低,并且应该有一种方法可以在 Bundle 级别控制这种单实例行为。这就是为什么我认为 Info.plist 中会有一个标志,但我没有看到任何相关内容。