如题,
用java做了一个桌面应用程序,如何做到只能运行一个实例。网上说用Socket去判断,但觉得不太好,请问大家有没有好的办法。
还有就是程序当运行时,在任务管理器中只能看到一个javaw.exe,有没有办法能够自己去指定在进程里的程序名字。
谢谢。
用java做了一个桌面应用程序,如何做到只能运行一个实例。网上说用Socket去判断,但觉得不太好,请问大家有没有好的办法。
还有就是程序当运行时,在任务管理器中只能看到一个javaw.exe,有没有办法能够自己去指定在进程里的程序名字。
谢谢。
如果启动了一个实例就将文件的信息改为1
第2次启动的时候判断是否为0,=0就启动,=1就不启动退出程序之前要改为0不过程序异常终止就出现问题了
private static App app = null;
private App() {}
public static App getInstance() {
if (app == null) {
app = new App();
}
return app;
} public static void main(String [] args) {
App app = App.getInstance();
...
}
}
HANDLE hMutex = CreateMutex ( NULL, false, "FanyuSingleProgram" ) ;
HANDLE windowhandle;
if (WaitForSingleObject(hMutex,0)==WAIT_TIMEOUT)
{
MessageBox(NULL,"你的程序已经启动","信息",MB_OK|MB_ICONINFORMATION);
exit (0);
}
这个缺点就是如果突然停电就没有办法了
你可以为你的程序加一个挂钩程序,让它来处理你程序退出以后的事情