当前位置: 技术问答>java相关
有没有办法让一个Java程序只能有一个实例在运行
来源: 互联网 发布时间:2015-08-09
本文导语: 就像Outlook Express一样,只能开一个,不会有两个 | 文件的方法,如果第一个程序被非法中断如ctrl-c,来不及恢复文件中的内容,起不是以后就不能运行此程序了。 不如用ServerSocket守住一个端...
就像Outlook Express一样,只能开一个,不会有两个
|
文件的方法,如果第一个程序被非法中断如ctrl-c,来不及恢复文件中的内容,起不是以后就不能运行此程序了。
不如用ServerSocket守住一个端口,后来的程序也试图守这个端口,就回产生异常当接受到这个异常的时候就终止。
不如用ServerSocket守住一个端口,后来的程序也试图守这个端口,就回产生异常当接受到这个异常的时候就终止。
|
好像设计模式不能解决这个问题吧,楼主说的可是应用程序级别的,不过我觉得这个问题的解决依赖于操作系统,所以如果要实现,则必须用JNI,一种方法就是自己写一个加载java程序的壳(java.exe)你可以在src.jar中找到该程序的C程序,自己改一改就可以了。
|
这个问题可以用jndi解决!
java的一个实例在单独的jvm中运行的。
///
java的一个实例在单独的jvm中运行的。
///
|
可以用初始化文件来解决
你可以在初始化文件(.ini)中设置一个变量比如runTag=0
在程序启动的时候读入这个变量
如果tag=1表示已经运行,退出,反之,运行
你可以在初始化文件(.ini)中设置一个变量比如runTag=0
在程序启动的时候读入这个变量
如果tag=1表示已经运行,退出,反之,运行
|
呵呵~~~我也来发表一点拙见,我认为用Singleton和jndi解决都可以,不同的是用jndi解决可用于分布式的开发,Singleton则只能在单个jvm起作用
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
================================================================
CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!
★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。
★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。
Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
|
支持 gfzhx(小小) 的观点
解决方法有,但是不是很好
jdk1.4中提供FileLock ,建立一个锁就可以了。
解决方法有,但是不是很好
jdk1.4中提供FileLock ,建立一个锁就可以了。