ตัวอย่างในบทความนี้จะอธิบายวิธีที่ Java รันคำสั่ง Linux แบ่งปันกับทุกคนสำหรับการอ้างอิงของคุณ วิธีการดำเนินการเฉพาะมีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
StreamGobbler คลาสสาธารณะขยายเธรด {
InputStream คือ;
ประเภทสตริง;
StreamGobbler สาธารณะ (InputStream คือประเภทสตริง) {
this.is = คือ;
this.type=ประเภท;
-
โมฆะสาธารณะวิ่ง () {
พยายาม {
InputStreamReader isr = ใหม่ InputStreamReader (คือ);
BufferedReader br = BufferedReader ใหม่ (isr);
เส้นสตริง = null;
ในขณะที่ ((line = br.readLine()) != null) {
ถ้า (type.equals("ข้อผิดพลาด")) {
System.out.println("ข้อผิดพลาด :" + บรรทัด);
} อื่น {
System.out.println("Debug:" + line);
-
-
} จับ (IOException ioe) {
ioe.printStackTrace();
-
-
-
โมฆะเชลล์ส่วนตัว (String cmd)
-
สตริง[] cmds = { "/bin/sh", "-c", cmd };
กระบวนการกระบวนการ
พยายาม
-
กระบวนการ = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = ใหม่ StreamGobbler(process.getErrorStream(), "ข้อผิดพลาด");
StreamGobbler outputGobbler = StreamGobbler ใหม่ (process.getInputStream(), "เอาต์พุต");
errorGobbler.start();
เอาท์พุทGobbler.start();
พยายาม
-
กระบวนการ waitFor();
-
จับ (InterruptedException e)
-
e.printStackTrace();
-
-
จับ (IOException จ)
-
e.printStackTrace();
-
-
พารามิเตอร์ cmd คือคำสั่ง Linux สามารถดำเนินการได้ครั้งละหนึ่งคำสั่งเท่านั้น
1. หมายเหตุเกี่ยวกับ Java Runtime.exec():
1 เสมอ อ่านสตรีมข้อมูลก่อนที่จะเรียกใช้เมธอด waitFor() 2 อ่านจากสตรีมข้อผิดพลาดมาตรฐานก่อนเสมอ จากนั้นจึงอ่านสตรีมเอาต์พุตมาตรฐาน
2. วิธีที่ดีที่สุดในการรันคำสั่งระบบคือการเขียนไฟล์ค้างคาวหรือเชลล์สคริปต์
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน