4

I've read a lot about the question but the answers I have found don't work completely.

I try to run this code :

String[] args = {"cmd","/c","start","C:\\Program Files\\XML Marker\\xmlmarker.exe"};
Runtime rt = Runtime.getRuntime();
ProcessBuilder pb = new ProcessBuilder(args);
Process pr = pb.start();      
//Process pr = rt.exec(args);

As I have spaces in my path, I use String array to pass the arguments to the Process But ... it opens a DOS command window but doesn't launch my program, as if the parameters where ignored

I tried with rt.exec(args) and pb.start() ... same result

Could someone give me some advice please ? Thank you.

Hugues
  • 375
  • 1
  • 3
  • 10

2 Answers2

5

Try adding quotes around the path by inserting escaped quotes in your string, as follows:

String[] args = {"cmd","/c","start","\"C:\\Program Files\\XML Marker\\xmlmarker.exe\""};

Notice the \" at the start and end of the path string.

Mansoor Siddiqui
  • 20,853
  • 10
  • 48
  • 67
4

No need to have a "start" and "cmd" at the same time. You can safely take out "start". If you use a parameter enclosed in quotes with the "start" command, it treats it as a Title for a new command window.

Arun
  • 2,493
  • 15
  • 12