java - 如何避免在同一个 Java 项目中同时运行多个实例?

标签 java

我有一个 java 项目,用作服务器。当这个项目的一个实例运行时,我可以运行另一个实例。
如何避免在同一个 Java 项目中同时运行多个实例? (当检测到另一个实例时停止服务器)

最佳答案

import java.net.ServerSocket; 
..... 
private static final int PORT = 9999;
private static ServerSocket socket;  
public static void main(String[] args) {

    try {
        socket = new ServerSocket(PORT, 0, InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }));

                {/*here write your own code taht must be run in the main*/}

    } catch (BindException e) {
        System.err.println("**********************************Already running.");
        System.exit(1);
    } catch (IOException e) {
        System.err.println("************************************Unexpected error.");
        e.printStackTrace();
        System.exit(2);
    } catch (Exception e) {
        System.err.println("************************************ Error");
        System.exit(3);
    }
}

我用过这段代码,试了一下就可以了

关于java - 如何避免在同一个 Java 项目中同时运行多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181473/

相关文章:

java - 您可以在不使用 JTA 的情况下在 OSGi 环境(如 Karaf)中使用 Hibernate 5.2 StatelessSession 吗?

java - 使用 Java 按实际顺序将列表值添加到 Treemap

java - ZipFile 抛出错误,但 ZipInputStream 能够解压缩存档

java - 无法更改至其他 Activity

Java - 处置模式

java - Java中根据人口密度构建四叉树

java - 我可以在没有浏览器的情况下运行 Selenium 网格吗?

java - 验证的 boolean 逻辑失败

java - Docx4J 从 docx 文件中获取页眉/页脚元素并修改它们

java - 安卓 UIAutomator : setAsHorizontalList() throws noSuchMethodError