"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تنفيذ البرامج الخارجية بشكل فعال واسترجاع مخرجاتها في Java؟

كيف يمكنني تنفيذ البرامج الخارجية بشكل فعال واسترجاع مخرجاتها في Java؟

تم النشر بتاريخ 2024-11-15
تصفح:714

How can I effectively execute external programs and retrieve their output in Java?

تنفيذ البرامج الخارجية في Java

في برنامج Java الخاص بك، أنت تحاول تنفيذ برنامج خارجي ("program.exe") باستخدام Runtime.exec( ) طريقة. على الرغم من أنه لا ينتج أخطاء، إلا أن البرنامج يبدو غير فعال.

يستخدم الكود المقدم أسلوب Runtime.exec(params) لبدء البرنامج الخارجي. ومع ذلك، هذه الطريقة لها قيود في التعامل مع بيانات الإدخال والإخراج بين برنامج Java والعملية الخارجية.

للتفاعل بشكل فعال مع برنامج خارجي واسترجاع مخرجاته، يمكنك الاستفادة من فئة ProcessBuilder. فيما يلي مثال يوضح كيفية تنفيذ برنامج "program.exe" بمعلمات محددة:

ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\user\\Desktop\\program.exe",
        "C:\\Users\\user\\Desktop\\images.jpg", "C:\\Users\\user\\Desktop\\images2.txt");
Process process = processBuilder.start();

InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String line;
System.out.println("Output of running program.exe with parameters:");

while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
}

في هذا الكود، نقوم بإنشاء مثيل ProcessBuilder بالمعلمات المطلوبة. يتم استخدام طريقة start () لبدء البرنامج الخارجي. نستخدم بعد ذلك InputStream لقراءة مخرجات البرنامج، وتحويله إلى أحرف باستخدام InputStreamReader، وأخيراً تخزينه في BufferedReader لتسهيل المعالجة سطراً تلو الآخر.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3