Exec Command似乎没有在java中正确执行

时间:2011-03-28 13:34:00

标签: java exec runtime.exec

我有一个java项目,我想从另一个java程序运行。但是当我使用exec命令调用它时,它不会立即执行,而是等待当前程序结束。如果我添加一个waitFor语句,那么当主程序等待进程并且进程正在等待主程序时,程序挂起。有谁知道我怎么解决这个问题?或者为什么它以这种方式表现?我需要在第二个jar文件执行之前执行这个jar文件。

Runtime.getRuntime().exec("java -jar \"JavaProject1/dist/JavaProject1.jar\"");
        System.out.println("Hello");
        p.waitFor();

jar文件的位置很好,它会打印你好。我想要运行的jar文件的主要类是在DaniWeb

的这个帖子中

2 个答案:

答案 0 :(得分:1)

除此之外,你必须继续读取进程STDOUT和STDERR,否则它将阻塞。

例如,请参阅http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

答案 1 :(得分:0)

  

为什么它以这种方式表现?

因为您在自己的程序中创建了死锁。

当您添加waitFor()程序 main()时,请等待外部进程完成。

当外部进程正常完成时,它返回零。

可能是外部程序有一些问题