Melaksanakan Perintah Paip dengan Runtime.exec()
Dalam Java, Runtime.exec() biasanya digunakan untuk melaksanakan arahan shell. Walau bagaimanapun, cubaan untuk melaksanakan perintah yang dibatasi paip seperti "ls /etc | grep release" secara langsung menggunakan Runtime.exec() boleh mengakibatkan tingkah laku yang tidak dijangka disebabkan oleh perbezaan merentas platform dalam pengendalian paip.
Penyelesaian:
1. Cipta Skrip:
Untuk memastikan pelaksanaan paip bebas platform, tulis skrip yang melaksanakan saluran paip yang dikehendaki dan laksanakan skrip dan bukannya arahan yang berasingan. Contohnya:
// script.sh ls /etc | grep release
Kemudian laksanakan skrip menggunakan Runtime.exec():
String command = "/bin/sh script.sh"; Process child = Runtime.getRuntime().exec(command);
2. Gunakan Shell Invocation:
Pendekatan lain ialah menggunakan shell secara terus dan lulus perintah yang dibatasi paip sebagai satu hujah. Ini boleh dicapai menggunakan kod berikut:
String[] cmd = { "/bin/sh", "-c", "ls /etc | grep release" }; Process child = Runtime.getRuntime().exec(cmd);
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah Paip dengan Amanah Menggunakan Runtime.exec() Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!