java Process.exec无法正常运行

时间:2018-07-03 15:59:59

标签: java shell command-line command command-line-arguments

我正在从Java程序中运行程序。当我直接从命令行运行它时,该程序运行。当我使用Process.exec运行它时,它停滞在执行中。这是一个最小的示例:

import java.io.*;
import java.util.*;
public class TMP{
    public static void main(String args[])throws Exception{
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("nusmv -bmc -bmc_length 1 JumpTemp.smv");   
        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));    

        String line = null;        
        while((line=input.readLine()) != null){
            System.out.println(line);
        }

    }  
}

当我从命令行逐字准确地运行该字符串时,程序运行正常。这使我相信与命令行相比,问题在于Process.exec的执行方式。我以这种方式运行了非常相似的程序,没有问题,因此从理论上讲,问题可能出在我正在运行的程序上,但是我看不到它将如何在命令行上运行。 关于exec与命令行的类似问题涉及特定于cmd的参数,但是您可以看到,这里不是这种情况。我也尝试过使用exec替代方法,但无济于事。

我的问题是: 这样的事情怎么可能发生,我该如何解决?

0 个答案:

没有答案