[英]Process Created By Runtime.getRuntime().exec(command) is sleeping in middle of execution
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.