Tooling মধ্যম

স্পষ্ট আর্গুমেন্ট তালিকা ও ProcessBuilder কনফিগারেশন দিয়ে প্রসেস চালু করুন।

✕ Command string
Process process = Runtime.getRuntime()
        .exec("git show " + revision);
✓ ProcessBuilder
Process process = new ProcessBuilder(
        "git", "show", revision)
        .redirectErrorStream(true)
        .start();
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🎯

নির্ভুল আর্গুমেন্ট

কমান্ড-স্ট্রিং টোকেনাইজেশন ছাড়াই প্রতিটি প্রসেস আর্গুমেন্ট আলাদা মান হিসেবে থাকে।

🎛

স্পষ্ট কনফিগারেশন

এনভায়রনমেন্ট, ডিরেক্টরি, রিডাইরেক্ট ও এরর হ্যান্ডলিং একসঙ্গে কনফিগার করা যায়।

🛡

নিরাপদ সীমানা

ডায়নামিক মান দিয়ে শেল-সদৃশ কমান্ড স্ট্রিং তৈরি করা এড়ায়।

পুরনো পদ্ধতি
Runtime.exec(String)
আধুনিক পদ্ধতি
ProcessBuilder
JDK থেকে
5
কঠিনতা
মধ্যম
Runtime.exec(String) থেকে ProcessBuilder আর্গুমেন্টে
উপলব্ধ

JDK 5 (সেপ্টেম্বর 2004) থেকে ব্যাপকভাবে উপলব্ধ

Runtime.exec(String) জাভার কমান্ড-স্ট্রিং টোকেনাইজেশন প্রয়োগ করে, আর্গুমেন্টে স্পেস বা উদ্ধৃতি চিহ্ন থাকলে যা সহজেই ভুল বোঝা যায়। ProcessBuilder প্রোগ্রামের আর্গুমেন্টগুলোকে আলাদা মান হিসেবে নেয় এবং কার্যকরী ডিরেক্টরি, এনভায়রনমেন্ট, ইনপুট/আউটপুট রিডাইরেক্ট ও এরর-স্ট্রিম নীতি স্পষ্টভাবে প্রকাশ করে। অ্যাপ্লিকেশন ইচ্ছাকৃতভাবে শেল চালু না করলে এটি কোনো শেল ডাকে না।