Это работа для меня очень хорошо!
ужно выполнить файл .exe из функции в одном из пакетов, которые у меня есть в моем проекте Java. теперь рабочий каталог является корневым каталогом проекта для Java, но файл .exe в подкаталогах моего проекта. Вот как организован проект:
ROOT_DIR
|.......->com
| |......->somepackage
| |.........->callerClass.java
|
|.......->resource
|........->external.exe
Первоначально я пытался запустить файл .exe напрямую через:
String command = "resources\\external.exe -i input -o putpot";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
но проблема в том, что внешнему .exe необходим доступ к некоторым файлам в его собственном каталоге, и он продолжает думать, что корневой каталог - это его каталог. Я даже пытался использовать файл .bat для решения проблемы, но возникает та же проблема:
Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "resources\\helper.bat"});
и файл .bat находится в том же каталоге, что и файл .exe, но возникает та же проблема. вот содержимое файла .bat:
@echo off
echo starting process...
external.exe -i input -o output
pause
даже если я переместлю файл .bat в корневой каталог и исправлю его содержимое, проблема не исчезнет. плз плз помогите