日期:2014-05-20  浏览次数:20655 次

java 怎样运行一个实例
我现在做的java程序在系统中运行一次将会产生一个javaw的进程而现在我要解决的是,怎样让java程序只能运行一个实例
java swing

------解决方案--------------------
写错,应该这样

private static ServerSocket listenerSocket;

public static void main(String[] args) {
try {
// 监听2012端口,达到一台终端只运行一个应用程序的目的
listenerSocket = new ServerSocket(2012);
} catch (java.net.BindException e) {
System.exit(1);
} catch (Exception e) {
System.exit(1);
}
}

------解决方案--------------------
如果是要求程序运行只能有一个进程,打包的时候,打包工具应该可以设置的吧,或者自己用c写一个启动exe,启动的时候判断一下,如果进程已经存在,则退出。如果指的是某个类只能有一个实例,则使用单例模式。
------解决方案--------------------
exe4j有一个选项可以保证只允许系统运行一个实例:
Allow only a single running instance of the application