2011-12-06 22 views
25

ubuntuのホームディレクトリでプロセスを開始しようとしています。私は境界外の例外の配列を取得しています。ここでは、コードは次のようになります。ここではProcessBuilderで作業ディレクトリを設定する方法

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 

答えて

60

あなたは/家とそれを実行しようとしている実行可能ファイルではありません。プロセスビルダの引数constructorが実行するコマンドです。

作業ディレクトリを設定する必要があります。あなたはdirectoryメソッドでそれを行うことができます。ここで

は完全な例である:

Process p = null; 
ProcessBuilder pb = new ProcessBuilder("do_foo.sh"); 
pb.directory(new File("/home")); 
p = pb.start(); 
+0

[OK]を、ありがとう。私は間違いを認識したので、私はその質問を編集しました。私はあなたが私の他の質問にも答えたかもしれないと思います – Eric

関連する問題