繁体   English   中英

从Java运行CMD

[英]Running CMD from Java

public void run() {
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec("C:\\Windows\\System32\\cmd.exe");
        stdin = pr.getOutputStream();
        writer = new BufferedWriter(new OutputStreamWriter(stdin));
        writer.write("python setup.py py2exe");
        writer.close();
        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line=null;
        while((line=input.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我试图通过Java在命令行中运行“ python setup.py py2exe”行,但是当我运行上述代码时,它不起作用(没有错误,但是代码应在目录中创建新文件,但是它没有)。

如果我直接将其放入命令提示符,该命令将完美运行。

如何使它通过Java运行?

我建议您使用ProcessBuilder ,那样您就可以使用inheritIO()和类似的东西,

ProcessBuilder pb = new ProcessBuilder("python", "setup.py", "py2exe");
pb.inheritIO();
try {
    Process p = pb.start();
    p.waitFor(); // <-- wait for the process to finish
} catch (Exception e) {
    e.printStackTrace();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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