Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
260 views
in Technique[技术] by (71.8m points)

java - Start CMD by using ProcessBuilder

I am trying to start the CMD application in windows by using the following code, but it doesn't work as expected. Several examples from different websites shows that "cmd" as an argument in the ProcessBuilder construct should work.

What do I have to do to make my Java app open the CMD application in windows?

 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());
         }  
     }
 }

When I try to use a non-existing application it actually prints out an error, so that means it actually runs "CMD". But the CMD application doesn't pop up as expected?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To use it with ProcessBuilder you must separate the commands like this:

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

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...