无法从java执行命令

时间:2016-01-07 09:00:05

标签: java

我想从java程序执行以下命令。

java -jar jarfile.jar -dir C:/MyDirectory -out C:/MyDirectory/example.html

我试过跟随,但它打开了cmd提示符,但它没有执行下一个命令

Runtime rt = Runtime.getRuntime();
    try {
        rt.exec(new String[] { "cmd.exe", "/c", "start" , "java -jar exampleJar.jar -dir C:\\MyDirectory -out C:\\MyDirectory\\exampleHtml.html" });

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:2)

我正在使用以下代码并且其工作正常,ProcessBuilder用于创建操作系统进程,每个实例管理一组进程属性。 start()方法使用这些属性创建新的Process实例。要创建具有相同实例start()方法的新子进程,可以重复调用。

public void execute(String[] code){

        try{
            ProcessBuilder pb=new ProcessBuilder(code);
            pb.redirectErrorStream(true);
            Process process = pb.start();
            BufferedReader inStreamReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

            while(inStreamReader.readLine() != null){
                System.out.println(inStreamReader.readLine());
            }
        } catch (IOException e) {
            System.out.println(e.toString());
            e.printStackTrace();
            log.error(e.getMessage());
        }
    }