私はubuntuのホームディレクトリでプロセスを開始しようとしています。配列の範囲外の例外を取得しています。コードは次のとおりです。
Process p = null;
ProcessBuilder pb = new ProcessBuilder();
pb.directory(new File("/home"));
p = pb.start();
例外は次のとおりです。
Exception in thread "main" Java.lang.ArrayIndexOutOfBoundsException: 0
at Java.lang.ProcessBuilder.start(ProcessBuilder.Java:459)
at tester.Main.main(Main.Java:31)
Java Result: 1
/ homeを実行しようとしていますが、実行可能ファイルではありません。プロセスビルダーの constructor 引数は、実行するコマンドです。
作業ディレクトリを設定します。それは directory メソッドで可能です。
完全な例を次に示します。
Process p = null;
ProcessBuilder pb = new ProcessBuilder("do_foo.sh");
pb.directory(new File("/home"));
p = pb.start();