Я хотел бы использовать Runtime.exec() для запуска другого процесса в каталоге с пробелами. (Звучит глупо, но я действительно хочу удовлетворить свое любопытство)
Подробности проблемы (упрощенная версия) У меня файл myprogram.exe находится в папке C:/Program Files/MyProgram.
Что я наблюдаю: 1). когда я вызываю Runtime.exec("C://Program Files//MyProgram//myprogram.exe"), IOException указывает: не удается найти файл C:/Program с кодом ошибки = 2. Я думаю, что это должен быть результат пространства
2). Я пробовал: Runtime.exec("/"C://Program Files//MyProgram//myprogram.exe/""), IOException указывает: не удается найти файл: "C:/Program Files/MyProgram/myprogram. EXE"
3). Я усвоил урок и попробовал перегруженную версию Runtime.exec(): File dir = new File("C://Program Files//MyProgram//"); И запустите: Runtime.exec("myprogram.exe", null, dir), и он говорит: не удается найти файл myprogram.exe в C:/Program Files/MyProgram/
4). Пробовал 1), вместо "Program Files" переименовываю в Program_Files, все работает
Я знаю, что могу использовать ProcessBuilder, чтобы сделать то же самое, но я не могу отпустить его в своем сердце... (Может быть, это моя слабость). Может ли кто-нибудь сказать мне, почему 2) и 3) не работает?
Спасибо.
C:/Program *and* Files/
? В большинстве систем он называетсяC:/Program Files
— вы точны в своем сообщении? - person Vinay Sajip   schedule 09.07.2009