我需要从我的 java 项目中的一个包中的一个函数执行一个 .exe 文件。现在工作目录是 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 文件移动到根目录并修复其内容,问题也不会消失。请帮助