如何确保在同一时间只有一个应用程序在运行

懒萝卜 2010-01-04 10:41:39
我做了一个控制台应用程序,
现在要怎么才能确保只有一个应用程序在运行呢?
就是说,当控制台应用程序启动时先检测是否已经启动,如果启动了,那么后面启动的应用程序退出,
如果未启动,那么继续执行。

要怎么确保这样的运行呢?
我原来想用端口监听,倾听你们更好的方法。
...全文
233 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒萝卜 2010-01-07
  • 打赏
  • 举报
回复
已实现,就是监听端口
bentu610 2010-01-04
  • 打赏
  • 举报
回复
用jsmooth包装一下~~~~
healer_kx 2010-01-04
  • 打赏
  • 举报
回复
互斥体。。。 。。。
Mutex~

不过要调用JNI了。。。
xiaohuanjie 2010-01-04
  • 打赏
  • 举报
回复
这是操作系统的问题,

采用 先来先服务的算法
py330316117 2010-01-04
  • 打赏
  • 举报
回复
这是最明白不过的了,用线程同步
hsf_1982 2010-01-04
  • 打赏
  • 举报
回复
楼主的方法不失为一个好的解决方案。如果将这个问题视为进程间同步问题,也可以采用信号量的方法来实现。将同步信号存放于文件中。
由于我的应用运行于UNIX环境,因此判断应用是否已经启动的操作,我是放在Shell脚本里的(通过检测端口使用情况),但发现应用已起后的策略和楼主不同。我是把已起的所有应用都杀掉,然后再继续运行当前进程。这样便于应用发布,否则必须都先杀掉应用再运行启动脚本。
xuhailang00 2010-01-04
  • 打赏
  • 举报
回复
看5楼,觉得可行。
beiouwolf 2010-01-04
  • 打赏
  • 举报
回复
不用这么麻烦
有个简单的做法

程序启动的时候绑定一个端口,
其他程序启动的时候先测试这个端口,如果已经被绑定了就说明已经有在跑的了
huntor 2010-01-04
  • 打赏
  • 举报
回复
你可以看看《Swing Hacks》Hack 84:Construct Single-Launch Applications

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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