Выполнение .exe файла на Java в отдельном каталоге - PullRequest
1 голос
/ 31 марта 2012

Я хочу запускать игры из своих приложений в Windows. Многие из этих игр используют локальные файлы для конфигурации.

В настоящее время я запускаю / выполняю файлы вне приложения

Process r = Runtime.getRuntime().exec("cmd /c start " + gamePATH);

Я также попытался просто ввести gamePath в качестве команды, но я все еще получаю эту ошибку от игры Halo PC:

Cannot Find "C:\...Directory containing my Java app...\config.txt"

Кажется, что "текущий каталог" при выполнении java - это место, откуда он запускается. Я пробовал это без прогресса:

Process a = Runtime.getRuntime().exec("cmd /c cd " + gamePATH.subSequence(0, gamePATH.lastIndexOf("\\")+1));

Что бы в командной строке установить текущий каталог в каталог, содержащий исполняемый файл. Опять же, это не сработало, поэтому, если возможно, мы будем благодарны за любые рекомендации

Ответы [ 2 ]

3 голосов
/ 31 марта 2012

Вы хотите посмотреть на Process Builder .В частности, вы хотите установить рабочий каталог, используя метод ProcessBuilder.directory(File).Вы выполняете его, используя метод start().

Например:

final ProcessBuilder pb = new ProcessBuilder("theExecutable");
pb.directory(new File("the/working/directory/path"));
final Process p = pb.start();
0 голосов
/ 16 февраля 2016

У меня была похожая проблема - не забудьте указать полный путь к вашему файлу в экземпляре ProcessBuilder.

Например:

final ProcessBuilder pb = new ProcessBuilder("C:/FolderName/SubFolderName/ExecutableFileName.exe");
pb.directory(new File("C:/FolderName/SubFolderName"));
final Process p = pb.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...