gpt4 book ai didi

java - 由 Runtime.getRuntime().exec(command) 创建的进程在执行过程中处于 hibernate 状态

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:12 25 4
gpt4 key购买 nike

File jarFile = new File(jarLocation + "/myJar.jar");
if ((jarFile).exists()) {
String[] command = new String[10];
command[0] = "java";
command[1] = "-jar";
command[2] = jarFile + "";
command[3] = Data.getParam1() + "";
command[4] = Data.getParam2() + "";
command[5] = Data.getParam3();
command[6] = Data.getParam4() + "";
command[7] = Data.getParam5() + "";
command[8] = "2";
command[9] = Data.getParam6() + "";
Process p1 = Runtime.getRuntime().exec(command);
}

当我在终端上执行我的 jar 时,它工作正常。但是,当我尝试使用上面的代码执行同一个 jar 时,执行该 jar 的进程会进入休眠状态,而不会完成其执行。所以请建议我如何一次性完成 jar 的执行。

最佳答案

在java中,创建的子进程使用父进程的控制台。阻塞可能是因为无法读取输入流或写入输出。也许当直接从终端运行 jar 时,它会工作,因为控制台可能已分配给进程(不过不要引用我)。

检查:https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html

关于java - 由 Runtime.getRuntime().exec(command) 创建的进程在执行过程中处于 hibernate 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com