繁体   English   中英

Runtime.getRuntime()。exec(command)创建的进程在执行过程中处于休眠状态

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM