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