Java プロジェクトにあるパッケージの 1 つの関数から .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 ファイルをルートに移動してその内容を修正しても、問題は解決しません。plz plz plz ヘルプ