【问题标题】:install4j: on MacOS installed application doesn't runinstall4j:在 MacOS 上安装的应用程序不运行
【发布时间】:2019-12-19 11:26:18
【问题描述】:

我的应用程序安装在默认的/Applications 目录中,但双击/Applications 或Dock 中的图标只会运行该应用程序一两次,然后停止工作。之后,它只在 Finder 栏中显示应用程序标题,没有其他内容。然后应用程序必须强制退出,因为它没有响应。有时,它在 /Applications 目录中工作,但从不在 Dock 中。

同时,当我以/Applications/application_name.app/Contents/MacOS/JavaApplicationStub 手动运行它时,它总是能正确启动。

我是在安装过程中遗漏了什么还是这是一个错误?有没有人见过这种行为?有没有办法诊断问题?

我使用 install4j 版本 7.0.12 和 MacOS Mojave (10.14.5)。

谢谢!

萨沙

【问题讨论】:

    标签: java macos install4j


    【解决方案1】:

    macOS 上的 GUI 应用程序始终是单实例,当您第二次单击停靠图标时,它们不会再次启动。在这种情况下,应用程序被简单地激活。 install4j 中有一个 API 可以对这种情况做出反应,请参阅

    https://www.ej-technologies.com/resources/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

    了解更多信息。

    【讨论】:

    • 实际上,我总是尝试只启动一个实例。前一个是强制退出,但任何新的尝试都失败了。当登录对话框与主应用程序框架一起显示时,似乎存在竞争条件,并且它与主 GUI 线程发生冲突。偶尔它会起作用,但大部分都失败了。始终从命令行工作。该问题与 install4j 无关,如果我找到它,我会发布解决方法。
    【解决方案2】:

    MacOS 上的主 GUI 线程试图同时打开主应用程序窗口和登录对话框作为单独的框架(阶段)。它只是偶尔工作,这表明存在与线程相关的问题。

    我的解决方法是更改​​代码以在主窗口的面板中显示登录字段,而不是启动新对话框。这解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多