5

親フォルダーがパス上に存在するプログラム (具体的には ImageMagick から変換) を実行しようとしています。したがって、convertコマンドラインから実行すると、コマンドが実行されます。ただし、次の場合は失敗します。

String command = "convert"
CommandLine commandLine = CommandLine.parse(command);
commandLine.addArgument(...)
...
int exitValue = executor.execute(commandLine);

変換実行可能ファイル ( C:\Program files\...) のフル パスを指定すると、このコードが機能します。これを行わないと、 exit value で例外がスローされます4

commons-exec にシステム パスを認識させるにはどうすればよいですか?

4

1 に答える 1

7

以前、システム セット PATH が Java プロセスが認識しているものではない、このような問題に遭遇しました。これをデバッグする方法として、次を使用して、Java プロセスがパス環境変数として認識しているものを出力できます。

EnvironmentUtils.getProcEnvironment();

これによりマップが表示され、Javaがパス変数を認識できるかどうかを確認できます。表示されていない場合、次のステップは、表示されない理由を突き止めることです。

そこにある場合は、次のように excutor.execute コマンドを実行してみます。

int exitValue = executor.execute(commandLine, EnvironmentUtils.getProcEnvironment());
于 2010-04-23T04:05:03.380 に答える