现在要怎么才能确保只有一个应用程序在运行呢?
就是说,当控制台应用程序启动时先检测是否已经启动,如果启动了,那么后面启动的应用程序退出,
如果未启动,那么继续执行。
要怎么确保这样的运行呢?
我原来想用端口监听,倾听你们更好的方法。
9 个解决方案
#1
这是操作系统的问题,
采用 先来先服务的算法
采用 先来先服务的算法
#2
互斥体。。。 。。。
Mutex~
不过要调用JNI了。。。
Mutex~
不过要调用JNI了。。。
#3
用jsmooth包装一下~~~~
#4
你可以看看《Swing Hacks》Hack 84:Construct Single-Launch Applications
#5
不用这么麻烦
有个简单的做法
程序启动的时候绑定一个端口,
其他程序启动的时候先测试这个端口,如果已经被绑定了就说明已经有在跑的了
有个简单的做法
程序启动的时候绑定一个端口,
其他程序启动的时候先测试这个端口,如果已经被绑定了就说明已经有在跑的了
#6
看5楼,觉得可行。
#7
楼主的方法不失为一个好的解决方案。如果将这个问题视为进程间同步问题,也可以采用信号量的方法来实现。将同步信号存放于文件中。
由于我的应用运行于UNIX环境,因此判断应用是否已经启动的操作,我是放在Shell脚本里的(通过检测端口使用情况),但发现应用已起后的策略和楼主不同。我是把已起的所有应用都杀掉,然后再继续运行当前进程。这样便于应用发布,否则必须都先杀掉应用再运行启动脚本。
由于我的应用运行于UNIX环境,因此判断应用是否已经启动的操作,我是放在Shell脚本里的(通过检测端口使用情况),但发现应用已起后的策略和楼主不同。我是把已起的所有应用都杀掉,然后再继续运行当前进程。这样便于应用发布,否则必须都先杀掉应用再运行启动脚本。
#8
这是最明白不过的了,用线程同步
#9
已实现,就是监听端口
#1
这是操作系统的问题,
采用 先来先服务的算法
采用 先来先服务的算法
#2
互斥体。。。 。。。
Mutex~
不过要调用JNI了。。。
Mutex~
不过要调用JNI了。。。
#3
用jsmooth包装一下~~~~
#4
你可以看看《Swing Hacks》Hack 84:Construct Single-Launch Applications
#5
不用这么麻烦
有个简单的做法
程序启动的时候绑定一个端口,
其他程序启动的时候先测试这个端口,如果已经被绑定了就说明已经有在跑的了
有个简单的做法
程序启动的时候绑定一个端口,
其他程序启动的时候先测试这个端口,如果已经被绑定了就说明已经有在跑的了
#6
看5楼,觉得可行。
#7
楼主的方法不失为一个好的解决方案。如果将这个问题视为进程间同步问题,也可以采用信号量的方法来实现。将同步信号存放于文件中。
由于我的应用运行于UNIX环境,因此判断应用是否已经启动的操作,我是放在Shell脚本里的(通过检测端口使用情况),但发现应用已起后的策略和楼主不同。我是把已起的所有应用都杀掉,然后再继续运行当前进程。这样便于应用发布,否则必须都先杀掉应用再运行启动脚本。
由于我的应用运行于UNIX环境,因此判断应用是否已经启动的操作,我是放在Shell脚本里的(通过检测端口使用情况),但发现应用已起后的策略和楼主不同。我是把已起的所有应用都杀掉,然后再继续运行当前进程。这样便于应用发布,否则必须都先杀掉应用再运行启动脚本。
#8
这是最明白不过的了,用线程同步
#9
已实现,就是监听端口