【问题标题】:How can I start and stop a jar file using another jar file?如何使用另一个 jar 文件启动和停止一个 jar 文件?
【发布时间】:2010-08-04 18:03:22
【问题描述】:

我想使用另一个 jar 文件或 java 类来启动和停止一个 jar 文件。 我可以使用以下命令启动 jar 文件:

Runtime run=Runtime.getRuntime();
Process process=run.exec("java -jar setvalue.jar");

该过程已启动并且工作正常。 但我不知道如何从其他 java 类/jar 文件中关闭该进程。 我想将 setvalue.jar 文件作为后台进程运行。并且能够使用其他 java 文件和 jar 文件来启动和停止它。

有人知道我该怎么做吗?

【问题讨论】:

    标签: java process jar


    【解决方案1】:

    您可以从创建它的类中停止该进程:

    Runtime run=Runtime.getRuntime();
    Process process=run.exec("java -jar setvalue.jar");
    
    // Do stuff
    
    process.destroy();
    

    我认为尝试使用 Java 停止独立进程并不容易(或推荐)。但是,如果您使用的是基于 UNIX 的系统,则可以使用 Runtime 对象执行 ps 命令来查找您的进程,然后使用 kill 它。

    【讨论】:

    • 我知道这适用于 Windows,但它也适用于 Linux 和 Ma 吗?
    【解决方案2】:

    如果您只是想在后台启动第二个 jar 文件,您可以使用:

    Process process=run.exec("nohup java -jar setvalue.jar &")
    

    【讨论】:

      【解决方案3】:

      一个选项将在您的 setvalue.jar 程序中创建一个在 while(true) 循环中运行的线程,该线程一直在某个位置查找文件,并且每当该线程找到该文件时,它将调用 System.exit 以终止当前的 JVM。当您想退出该程序时,只需使用另一个使用“touch”在 linux 中创建的 java 程序创建该文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-21
        • 1970-01-01
        • 2012-02-25
        • 2011-08-12
        • 1970-01-01
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        相关资源
        最近更新 更多