Install4j Mac:将命令行参数附加到Mac上正在运行的应用程序失败
今天我在MacOs上遇到了一个奇怪的问题。我希望我能准确地解释理解的前提条件。我们使用的是install4j版本6.0.1 我们的应用程序是使用install4j静默更新检查应用程序作为主“启动器”来实现的,用于在应用程序的启动过程中检查更新。此应用程序完全由install4j IDE配置。它检查是否存在更新,并为此下载新的安装程序并执行它。那很好。如果应用程序是最新的,“主”应用程序启动器将由执行启动器操作执行。因此,“extraCommandLineArguments”将传递给启动器,应用程序将启动。这也很好,参数将正确地传递给我们的主类 现在有一个奇怪的行为:当我在第一个实例运行期间用几个参数启动应用程序两次时,参数将不会传递给第一个实例,也不会创建第二个实例。启动器由install4j配置为允许应用程序的多个实例,单实例选项由应用程序本身实现。因此,主类检查实例是否始终在运行,并将参数传递给第一个实例。现在似乎永远不会创建第二个实例,因为我无法在调试模式下通过IDE连接到vm进程。因此,我将调试vm参数设置为vmoption文件。我尝试了几个选项来启动第二个实例:Install4j Mac:将命令行参数附加到Mac上正在运行的应用程序失败,install4j,Install4j,今天我在MacOs上遇到了一个奇怪的问题。我希望我能准确地解释理解的前提条件。我们使用的是install4j版本6.0.1 我们的应用程序是使用install4j静默更新检查应用程序作为主“启动器”来实现的,用于在应用程序的启动过程中检查更新。此应用程序完全由install4j IDE配置。它检查是否存在更新,并为此下载新的安装程序并执行它。那很好。如果应用程序是最新的,“主”应用程序启动器将由执行启动器操作执行。因此,“extraCommandLineArguments”将传递给启动器,应用程
- 使用“updater”应用程序正常执行我们的应用程序,并设置命令行参数
- 通过启动器可执行文件直接执行我们的应用程序,并设置命令行参数
- 通过调用启动器的JavaApplicationStub并将命令行参数传递给它来执行我们的应用程序
Info.plist
文件中,有MacLauncher
类被识别为主类。tere是否实现了搜索正在运行的实例而忽略第二个实例的逻辑
奇怪的是:在windows上,一切都很好。第二个进程将参数传递给正在运行的实例。mac上会有什么不同?如何检查install4j是否正在调用在启动器上配置的主应用程序类?有调试选项吗
提前感谢您的帮助。在Mac OS X上,GUI应用程序默认处于单实例模式。这是Mac OS X桌面环境的属性。打开第二个实例的唯一方法是调用
open -n my.app
嗯,但是对于我们的应用程序的早期版本和install4j版本5.1.15,在没有您提到的选项的情况下,它已经可以工作了。另一个问题:如何将您的解决方案传递给install4j中的
执行启动器
操作?我不确定在这方面会有什么变化。为了捕获后续调用的命令行参数,您可以使用api中的com.install4j.api.launcher.StartupNotification
类。install4j中的操作不能执行open-n