从 java 更改命令的工作目录
2022-09-01 20:25:28
我需要从 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文件移动到root并修复其内容,问题也不会消失。请 请 请 请 帮忙