java - 使用 ProcessBuilder 启动 CMD

标签 java cmd runtime.exec processbuilder

我尝试使用以下代码在 Windows 中启动 CMD 应用程序,但它没有按预期工作。来自不同网站的几个示例表明,“cmd”作为 ProcessBuilder 构造中的参数应该有效。

我需要做什么才能让我的 Java 应用程序在 Windows 中打开 CMD 应用程序?

 public class JavaTest
 {
     public static void main(String[] args) 
     {
         ProcessBuilder pb = new ProcessBuilder("cmd");

         try 
         {
             pb.start();
             System.out.println("cmd started");
         } 
         catch (IOException e) 
         {
             System.out.println(e.getMessage());
         }  
     }
 }

当我尝试使用一个不存在的应用程序时,它实际上打印出一个错误,这意味着它实际上运行了“CMD”。但是 CMD 应用程序没有按预期弹出?

最佳答案

要将它与 ProcessBuilder 一起使用,您必须像这样分隔命令:

final List<String> commands = new ArrayList<String>();                

commands.add("cmd.exe");
commands.add("/C");
commands.add("start");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.start();

关于java - 使用 ProcessBuilder 启动 CMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954194/

相关文章:

java - 如何在扫描仪中保存下一个字符串?

java SystemTray.add(TrayIcon) 在退出时挂起 Swing GUI

java - 使用 commons-digester XML 规则时,如何排除一些不需要的 XML 属性?

node.js - 错误 : Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js' when trying to run npm

java - 使用 junit 框架进行 sahi 测试中的 SetUp/TearDown 方法

windows - 如何在 Windows 命令提示符中将命令的输出值分配给变量?

java - 让jar文件在mac上的cmd或终端中运行

java - Java 中的 Runtime.getRuntime().exec() 具有文件重定向功能

java runtime.exec cmd/c 解析引用参数

java - 获取 java.io.IOException : CreateProcess: c:\Windows\System32\My_exe 1 error=2