如何防止多个程序实例同时运行?

Anakin_Skywalker 2003-03-06 07:07:28
好像在win32编程里面可以用windows api来检测是否有其他的程序实例在运行,这样就可以避免多个程序实例运行,那么java中应该如何能比较方便的实现?
...全文
125 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
takecare 2003-03-07
  • 打赏
  • 举报
回复
如果是同一个虚拟机的话,你可以使用static修饰符。如果不是同一个虚拟机的话可能就麻烦了。
xiaofenguser 2003-03-07
  • 打赏
  • 举报
回复
Singleton模式
seeku 2003-03-07
  • 打赏
  • 举报
回复
我想程序在虚拟机里面运行,实现只运行一个实例是可以的,但我不知道怎么做。

up
asdmonster 2003-03-07
  • 打赏
  • 举报
回复
to hotenM(南京) :
你说的好象都是两种方法,好象都属于某种欺骗的技巧,有没有更通用的方法——比较迂腐的在JAVA自己的语法里面找答案?
hotenM 2003-03-07
  • 打赏
  • 举报
回复
端口监听还可以扩展,可以向该端口发送一些命令来修改程序参数,停止程序等操作,
都非常方便。

有理由相信TOMCAT也是这么做的

停止TOMCAT的时候,相信是向某一个端口发送了停止的指令...
hotenM 2003-03-07
  • 打赏
  • 举报
回复
用端口监听是最规范的,
有理由相信TOMCAT也是这样做的
hotenM 2003-03-06
  • 打赏
  • 举报
回复
如果你对socket不了解的话,你说的也是一个办法
可以的,不过退出程序的时候别忘了把文件删掉

办法还有很多,比如在数据库里记一条记录等
Anakin_Skywalker 2003-03-06
  • 打赏
  • 举报
回复
hotenM(南京) ,不明白拜托说清楚点好吗?

我想或者这样行不行,程序启动后在目录里存一个文件,如果另一个实例发现有这个文件,就立即退出,可以么?
kbb 2003-03-06
  • 打赏
  • 举报
回复
up
hotenM 2003-03-06
  • 打赏
  • 举报
回复
java里面没有,因为微软没有提供内核给sun,也不可能提供。

可以通过资源来控制

比如listen一个端口,显然,只有一个实例能打开这个端口,如果listen失败,就退出程序,也能达到楼住的目的
asdmonster 2003-03-06
  • 打赏
  • 举报
回复
帮你UP

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧