يصف المثال الموجود في هذه المقالة كيفية تنفيذ Java لأوامر Linux. شاركها مع الجميع لتكون مرجعا لك. طريقة التنفيذ المحددة هي كما يلي:
انسخ رمز الكود كما يلي:
الطبقة العامة StreamGobbler تمتد الموضوع {
InputStream هو؛
نوع السلسلة؛
public StreamGobbler(InputStream هو نوع السلسلة) {
this.is = is;
this.type = type;
}
تشغيل الفراغ العام () {
يحاول {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
خط السلسلة = فارغ؛
بينما ((line = br.readLine()) != null) {
إذا (type.equals("خطأ")) {
System.out.println("خطأ :" + خط);
} آخر {
System.out.println("تصحيح:" + خط);
}
}
} التقاط (IOException ioe) {
ioe.printStackTrace();
}
}
}
قذيفة فارغة خاصة (سلسلة cmd)
{
String[] cmds = { "/bin/sh"، "-c"، cmd };
عملية المعالجة؛
يحاول
{
عملية = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");
StreamGobbleroutputGobbler = new StreamGobbler(process.getInputStream(), "Output");
errorGobbler.start();
outputGobbler.start();
يحاول
{
waitFor();
}
قبض على (InterruptedException ه)
{
printStackTrace();
}
}
قبض (IOException ه)
{
printStackTrace();
}
}
المعلمة cmd هي أمر Linux. يمكن تنفيذ أمر واحد فقط في كل مرة.
1. ملاحظات حول Java Runtime.exec():
① اقرأ دائمًا دفق البيانات قبل استدعاء طريقة waitFor () ② اقرأ دائمًا من دفق الأخطاء القياسي أولاً، ثم اقرأ دفق الإخراج القياسي
2. أفضل طريقة لتنفيذ أوامر النظام هي كتابة ملف بات أو برنامج شل.
آمل أن تكون هذه المقالة مفيدة لبرمجة جافا للجميع.