相关疑难解决方法(0)

从java更改命令的工作目录

我需要从我在java项目中的一个包中的函数中执行.exe文件.现在工作目录是java项目的根目录,但是项目子目录中的.exe文件.这是项目的组织方式:

ROOT_DIR
|.......->com
|         |......->somepackage
|                 |.........->callerClass.java
|
|.......->resource
         |........->external.exe
Run Code Online (Sandbox Code Playgroud)

最初我试图通过以下方式直接运行.exe文件:

String command = "resources\\external.exe  -i input -o putpot";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
Run Code Online (Sandbox Code Playgroud)

但问题是外部.exe需要访问它自己的目录中的一些文件,并一直认为根目录是它的目录.我甚至尝试使用.bat文件来解决问题,但同样的问题也出现了:

Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "resources\\helper.bat"});
Run Code Online (Sandbox Code Playgroud)

并且.bat文件与.exe文件位于同一目录中,但同样的问题也会发生.这是.bat文件的内容:

@echo off
echo starting process...

external.exe -i input -o output

pause
Run Code Online (Sandbox Code Playgroud)

即使我将.bat文件移动到root并修复其内容,问题也不会消失.plz plz plz帮助

java command-line batch-file working-directory

18
推荐指数
2
解决办法
3万
查看次数