Menyelesaikan masalah "process.waitFor() Never Returns" dalam Java
Apabila melaksanakan perintah sistem menggunakan Runtime.getRuntime().exec() , anda mungkin menghadapi situasi di mana panggilan ke proses berikutnya.waitFor() tergantung selama-lamanya. Berikut ialah beberapa sebab biasa dan penyelesaian yang berpotensi:
Penyekatan Output Proses
Punca utama isu ini ialah apabila arahan yang dilaksanakan menghasilkan output dan program anda gagal membaca daripada aliran yang sesuai. Akibatnya, arahan menjadi disekat menunggu ruang penimbal, sementara program anda menunggu arahan selesai. Ini mewujudkan situasi kebuntuan.
Penyelesaian: Baca secara berterusan daripada strim input arahan untuk mengelakkan sekatan. Gunakan kaedah seperti BufferedReader.readLine() untuk menggunakan output daripada InputStreamReader yang disambungkan kepada aliran input proses.
Isu Biasa Lain
Sumber Tambahan:
Atas ialah kandungan terperinci Mengapa Java Saya `process.waitFor()` Tidak Pernah Kembali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!