Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengalihkan Keluaran Secara Berkesan Apabila Melaksanakan Skrip Shell menggunakan Runtime Java?

Susan Sarandon
Lepaskan: 2024-10-24 08:24:29
asal
612 orang telah melayarinya

How to Effectively Redirect Output When Executing Shell Scripts using Java's Runtime?

Melaksanakan Skrip Shell dengan Output Diubah Hala menggunakan Runtime Java

Apabila cuba untuk melaksanakan skrip shell dengan kaedah Runtime.exec() Java, output pengalihan mungkin tidak berfungsi seperti yang dimaksudkan. Isu ini timbul apabila pengendali ubah hala >> digunakan dalam skrip.

Masalah:

Process p = Runtime.getRuntime().exec("sh somescript.sh >> out.txt");
Salin selepas log masuk

Walaupun skrip berjaya dilaksanakan, output tidak akan dialihkan ke fail yang ditentukan dan fail itu sendiri akan kekal tidak dibuat.

Penyelesaian:

Untuk mengubah hala output dengan berkesan, adalah perlu untuk memanfaatkan kelas ProcessBuilder Java:

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException
Salin selepas log masuk

Penjelasan:

Dengan menggunakan ProcessBuilder, anda boleh mengkonfigurasi pengalihan strim stdout dan stderr secara bebas. Kaedah redirectOutput() dan redirectError() membolehkan anda menentukan fail untuk ubah hala output.

Perhatikan bahawa jika fail "out.txt" tidak wujud, ia akan dibuat secara automatik. Jika ia sudah wujud, kandungan sedia ada akan ditimpa.

Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Keluaran Secara Berkesan Apabila Melaksanakan Skrip Shell menggunakan Runtime Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!