コマンドラインから外部プログラムを実行しようとしていますが、呼び出し元のディレクトリにプログラムが存在する場合にのみ実行できることがわかりました。任意のディレクトリからプログラムを実行できるようにしたいと考えています。
Windows(7)のPath変数を設定し、コマンドラインを使用して任意のディレクトリからプログラムを手動で実行できます。ただし、Java を介して行うことはできません。
関連コード:
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(new String[]{"C:\\AutomateKPI\\GetLog.exe", "-e", rossIP});
私の問題は、上記のプログラムの出力により、一般的な名前のファイル「log.txt」が生成されることです。これにより、プログラムをスレッド化するときに問題が発生します。パス変数を使用できない場合は、プログラムを新しいディレクトリにコピーして、後で削除することもできます。そうすることは避けたいと思います。
編集: 上記のコードは、GetLog.exe が C:\AutomateKPI に存在するため機能します。C:\AutomateKPI\*NewDir* から GetLog.exe を実行できるように、%PATH% を参照したいと思います。