我用java写了一个桌面工具,现在我想让这个工具在一台机器上只有一个在执行,也就是说当工具在执行的时候,我再点击那个执行文件是没有效果的(即不会出现同样的工具开始执行)

解决方案 »

  1.   

    回复人:cheng_young(古道西风瘦马) ( 二级(初级)) 信誉:100  2006-04-18 21:41:00  得分:0

    一个比较简单的方法是
    程序启动后,生成一个文件,表示已经启动
    再次启动时,在程序中检测该文件,如果已经存在,退出
    ------------------------------
    感觉上这种方法不可取的。万一程序意外中止呢?!而用来做标识的文件又没有被处理,那再次运行程序的时候就会出问题了。
    如果要取得PID之类的可能要用到JIN,但如果用JNI的话就没有必要取得PID了,你可以通过调用WIN32 API创建互斥对象来实现单例运行(这方面的,google一下就很多了)
      

  2.   

    回复人:bonwei(阿邦) ( 二级(初级)) 信誉:100  2006-04-18 22:01:00  得分:0

    监听socket
    ---------------------------
    通过Socket打开端口来作为互斥信号也是不错的啊学了一招!
    不过在初次安装程序的时候要检测这个端口是否已经被占用哦。。