使用的ProcessBuilder启动CMD使用的ProcessBuilder启动CMD(S

2019-05-12 05:29发布

我试图通过使用下面的代码在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应用程序不弹出?

Answer 1:

您需要使用的启动命令。 其实,即使我没有看到一个新的命令提示符弹出,但你可以检查一个新的cmd.exe正在使用您的肯定开始task manager

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

但是,相同的功能可以使用取得Runtime.exec()这实际上会弹出一个新的命令提示符。

Runtime.getRuntime().exec("cmd.exe /C start");


Answer 2:

要使用的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();


文章来源: Start CMD by using ProcessBuilder