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

时间:2012-12-18 07:07:32

标签: javafx-2 single-instance javaw

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

我已经尝试将我的JavaFX应用程序打包到.exe文件(或制作.exe启动程序)中,该文件将在Windows任务管理器中显示为“MyProg.exe”进程,而不是“javaw.exe”。但它不是解决方案(我尝试过netbeans的工具),因为它为我的应用程序增加了jre,从而将其从1 mb扩大。到130+ mb。 (can you help me with it?

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

我希望我描述清楚,如果有人可以帮助我,那将非常感谢!

1 个答案:

答案 0 :(得分:2)

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

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