为什么Runtime.getRuntime()。exec和ProcessBuilder在第一个jar应用程序退出后启动我的第二个jar应用程序?

时间:2016-08-13 08:35:21

标签: java javafx

TL; DR:第一个java应用程序启动第二个java应用程序,但只在退出之后。

我有两个可执行的jar文件(从eclipse导出)。我通过命令提示符使用" java -jar first.jar"来启动第一个。命令。这个罐子的一部分就是启动第二个罐子。我已尝试过以下两种方法:

<?php 

$getCurrentTime =  Carbon::now()->hour;

switch ($getCurrentTime) {
    case '2':
            // get first 350 records

        break;
    case '4':
            // get second 350 records


        break;
    case '6':
            // get third 350 records
        break;

}

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "Second.jar");
Process p = pb.start(); 

现在,当我将一个小测试罐作为second.jar运行时,没有问题。但是,就我的目的而言,第二个jar要大得多(使用JavaFX,JDBC连接器,JXBrowser组件并启动外部进程本身)。当我用这个替换更简单的second.jar时,会发生奇怪的事情。出于所有意图和目的,似乎没有任何事情发生,但只有first.jar正在运行。一旦它完成了它的工作并退出,或者如果它的进程被杀死,second.jar就会完美地启动。我不确定这样做是什么,所以我不知道该尝试什么。我使用log4j2并根据日志,在first.jar关闭之后才能进入second.jar的main方法。

TL; DR

0 个答案:

没有答案