【问题标题】:Launch CMD command with spaces with JAVA使用 JAVA 启动带有空格的 CMD 命令
【发布时间】:2017-12-12 10:10:20
【问题描述】:

我想用 ProcessBuilder 在 CMD 中执行,这是我的代码:

ProcessBuilder pb = new ProcessBuilder(
            "cmd /c start C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe --headless --disable-gpu --print-to-pdf javaGen.pdf  file:///C:/Users/User/Desktop/template/template2.html");
pb.start();

但我不断得到:

Cannot run program "cmd /c start C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --headless --disable-gpu --print-to-pdf javaGen.pdf  file:///C:/Users/User/Desktop/template/template2.html": CreateProcess error=2, file not found

我确定 chrome.exe 和 template2.html 位于各自的路径中。

编辑

我也试过这个:

Process p = Runtime.getRuntime().exec(
            "cmd /c start \"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" --headless --disable-gpu --print-to-pdf javaGen.pdf  file:///C:/Users/User/Desktop/template/template2.html");

我得到了:

windows can't find --headless

*编辑 2 *

我试过这个命令:

pb.command(new String[] { "cd \"Program Files (x86)\"", "cd Google\\Chrome\\Application\\",
            "chrome.exe --headless --disable-gpu --print-to-pdf javaGen.pdf  file:///C:/Users/User/Desktop/template/template2.html" });
    pb.start();

我得到了:

Cannot run program "cd "Program Files (x86)"": CreateProcess error=2, File not found

【问题讨论】:

标签: java cmd processbuilder


【解决方案1】:

要使用 cmd 运行程序,您只需要 cmd /c %programname%,但您添加了导致问题的 start

将您的 ProcessBuilder 更改为:

ProcessBuilder pb = new ProcessBuilder(
            "cmd", "/c", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "--headless", "--disable-gpu", "--print-to-pdf", "javaGen.pdf",  "file:///C:/Users/User/Desktop/template/template2.html");
pb.start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2021-07-26
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多