Java: выполнить / cmd / c начать путь с пробелами \ program.exe - PullRequest
4 голосов
/ 30 августа 2011

Я много читал об этом вопросе, но ответы, которые я нашел, не работают полностью.

Я пытаюсь запустить этот код:

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

Поскольку у меня есть пробелына своем пути я использую массив String для передачи аргументов процессу, но ... он открывает окно команд DOS, но не запускает мою программу, как если бы параметры игнорировались

, которые я пытался с помощью rt.exec (args) и pb.start () ... тот же результат

Может кто-нибудь дать мне совет, пожалуйста?Спасибо.

Ответы [ 2 ]

5 голосов
/ 30 августа 2011

Попробуйте добавить кавычки вокруг пути, вставив в строку экранированные кавычки, как показано ниже:

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

Обратите внимание на \" в начале и конце строки пути.

4 голосов
/ 30 августа 2011

Нет необходимости одновременно использовать «start» и «cmd».Вы можете смело выносить «Старт».Если вы используете параметр, заключенный в кавычки с командой «start», он обрабатывает его как заголовок для нового командного окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...