もう1つの質問はすばやく続きますが、これは私が見ていない本当に明白なエラーでなければなりません。私は以下のバッチファイルを実行するいくつかのコードを書いたが、ファイルを見つけることができないというエラーメッセージが表示されていますが、ファイルがディレクトリに存在することを保証することができます!ProcessBuilderはファイルを見つけることができません。
public class Pull {
public void pullData() throws IOException {
ProcessBuilder pb = new ProcessBuilder("adb.bat");
File f = new File("C:\\");
pb.directory(f);
Process p = pb.start();
}
public static void main(String[] args) throws IOException {
Pull pull = new Pull();
pull.pullData();
}
}
と、ここで私は、Linuxを実行しているんだけど、私はあなたのコード(.SHを実行するように変更はなく、実行時に同じエラーが発生するエラーメッセージ
Exception in thread "main" java.io.IOException: Cannot run program "adb.bat" (in directory "C:\"): CreateProcess error=2, The system cannot find the file specified
したがって、adb.batはc:\にありますか?それをプロジェクトフォルダ – keyser
に置いてみてください。私はprocessbuilderを正しく使用していますか? – Rookie
バッチファイルの内容を 'ProcessBuilder'の引数として実行しようとしましたか?例えば、 "adb.bat"が "java -version"のようなことをしたら、あなたは '新しいProcessBuilder(" java "、" - server ")'のようなことをやってみましたか?私はJavaが実行可能ファイルのようにadb.batを処理しようとしているのかどうか疑問に思っています。本当に単なるテキストベースのスクリプトです。 – CodeBlind