Java クラス内で実行したいシェル スクリプトがあります。シェル スクリプトは、入力ファイルを受け取り、そこから出力ファイルを生成します。
それを実行するには、apache commons exec を使用します。ここに私の小さなコードがあります:
CommandLine cmdLine = CommandLine.parse("/bin/sh ./generate_void_description.sh ./n3file ./voidfile");
int exitValue = executor.execute(cmdLine);
結果として、次のエラー メッセージが表示されます。
./generate_void_description.sh: 44: ./generate_void_description.sh: Syntax error: "(" unexpected
org.apache.commons.exec.ExecuteException: Process exited with an error: 2 (Exit value: 2)
もちろん、私は読むことができ、メッセージがスクリプトに構文エラーがあることを意味することを理解していますが。
1) スクリプトを書いたことがなく、bash スクリプトの構文に慣れていない 2) ubuntu 内の端末でスクリプトを実行すると、スクリプトはエラーなしで完全に動作します
ユーザーの権利と関係がありますか?出力ファイルを作成する必要がある場合、これを行う権限がない可能性があります。