java 怎样运行一个实例 我现在做的java程序在系统中运行一次将会产生一个javaw的进程而现在我要解决的是,怎样让java程序只能运行一个实例javaswing 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 up up 自己顶下,大神出来啊 你是说只能跑一个程序实例还是程序里的一个类只有一个实例对象? 如果是前者,打包工具如exe则有对应控制,如果是后者,则java类使用单例模式 使用socket的方式控制Socket server = new Socket(参数); 写错,应该这样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 关键是我这边运行java程序的时候没有窗口,只是用processBuilder创建的如下: final Class<?> clazz = (Class<?>) JavaCall.class; final boolean isWindows = System.getProperty("os.name").contains( "Windows"); final List<String> args1 = new ArrayList<String>(); args1.add(isWindows ? "javaw" : "java"); args1.add("-Xmx" + 128 + "M"); args1.add("-cp"); args1.add(System.getProperty("java.class.path")); args1.add("-Djava.library.path=" + System.getProperty("java.library.path")); args1.add(clazz.getCanonicalName()); // logger.info("start " + args1.toString()); final ProcessBuilder pb = new ProcessBuilder(args1); pb.redirectErrorStream(true); try { pb.start(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }我发现没有窗口的java程序用install4j打包后不能保证只运行一个实例 请教分号的作用? 这个正则我要疯了 多线程问题的执行顺序 关于Applet中JPanel的绘图问题 帮忙实现一个解密的算法! TrueTypeFont.open() NullPointerException问题 SWT 的文字拖动实现 DragSource 和DropTarget 实现问题 开发一个12580客户端那样的软件需要那些技术和软件工具? <<问题 JAVA编译问题 mina框架TCP连接优化 在实现自己的可重复带排序List时遇到一个小问题,不知何解!
try {
// 监听2012端口,达到一台终端只运行一个应用程序的目的
listenerSocket = new ServerSocket(2012);
} catch (java.net.BindException e) {
System.exit(1);
} catch (Exception e) {
System.exit(1);
}
}
Allow only a single running instance of the application
final Class<?> clazz = (Class<?>) JavaCall.class;
final boolean isWindows = System.getProperty("os.name").contains(
"Windows");
final List<String> args1 = new ArrayList<String>();
args1.add(isWindows ? "javaw" : "java");
args1.add("-Xmx" + 128 + "M");
args1.add("-cp");
args1.add(System.getProperty("java.class.path"));
args1.add("-Djava.library.path="
+ System.getProperty("java.library.path"));
args1.add(clazz.getCanonicalName());
// logger.info("start " + args1.toString());
final ProcessBuilder pb = new ProcessBuilder(args1);
pb.redirectErrorStream(true);
try {
pb.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}我发现没有窗口的java程序用install4j打包后不能保证只运行一个实例