如何在进程管理器中找到我的 JavaFX 应用程序?



我有一个JavaFX应用程序,它应该在启动时检查它是否已经启动(当时只需要运行单个实例)。问题是如何定义它!

我尝试将我的JavaFX应用程序打包到.exe文件中(或制作一个.exe启动器),该文件将在Windows任务管理器中显示为"MyProg.exe"进程,而不是"javaw.exe"。但它不是解决方案(我尝试过 netbeans 的工具),因为它将 jre 添加到我的应用程序中,从而将其从 1 mb 扩大。到 130+ MB。(你能帮我吗?

我尝试过launch4j,但是启动器和.exe包都启动javaw.exe来运行我的应用程序。当我检查进程管理器并看到 2 个 javaw 时.exe我不知道是我的应用程序的 2 个实例还是只是另一个正在运行的应用程序?

我希望我描述清楚,如果有人可以帮助我,我将不胜感激!

从你的方法来看,你似乎已经找到了从Java获取Windows进程列表的方法。在这种情况下,您可以使用下一个解决方案之一:

  1. 考虑其他进程信息。 例如命令行或窗口标题。Windows命令行可以使用wmic.exe PROCESS命令检索,对于基于Unix的系统,可以通过ps -Af检索。
  2. 当程序启动时,将其进程 ID 存储在注册表中或 homedir 中的文件中。当另一个实例启动时,它应该检查该值,如果该 id 的进程处于活动状态,则退出。