2016-07-17 4 views
0

私は現在Javaで小さなソフトウェアを開発していますが、私は解決できない問題に直面しています。つまり、私はArchLinuxを使い、特定のディレクトリに "makepkg"を実行する必要があります。もちろん試しましたJavaの特定のディレクトリでシェルコマンドを実行

Runtime.getRuntime().exec("cd foo && makepkg"); 

しかし、私はディレクトリでcdできないことを発見しました。誰かがこれを行う方法についてアイデアを持っていますか?とにかくありがとう

答えて

1

プロセスエグゼキュータはシェルではありません。これは、プロセスを起動するために行われます。 指定されたディレクトリからプロセスを起動することができます。

ProcessBuilderインスタンスを作成し、作業ディレクトリを設定することができます。 私のやり方です。

ProcessBuilder pb = new ProcessBuilder("makepkg"); 
    pb.directory(new File("foo")); 
    final Process process = pb.start(); 
    // then you read the flow with process.getInputStream() for example 
+0

ありがとうございます!私はそれを試してみる –

関連する問題