2011-05-04 10 views
14

कौन सा बेहतर है? बेहतर से मेरा मतलब है कि किसके पास बेहतर सुरक्षा है, आदि (उपयोग में आसानी नहीं है)।प्रोसेसबिल्डर बनाम Runtime.exec()

+0

आप 'बेहतर सुरक्षा है' के साथ क्या मतलब है? –

उत्तर

31

उपयोग की आसानी उन दोनों के बीच एकमात्र वास्तविक अंतर है।

ध्यान दें कि उपयोग में आसानी से गलत उपयोग से बचने में मदद करके सुरक्षा हो सकती है।

कम से कम OpenJDK 6 Runtime.exec() पर ProcessBuilder का उपयोग कर कार्यान्वित किया जाता है:

public Process exec(String[] cmdarray, String[] envp, File dir) 
    throws IOException { 
    return new ProcessBuilder(cmdarray) 
     .environment(envp) 
     .directory(dir) 
     .start(); 
} 
+0

सिवाय इसके कि 'Runtime.exec' में ओवरलोड हैं जो' कमांड 'को एक' स्ट्रिंग 'के रूप में लेते हैं और इसे टोकनइज़ करते हैं, लेकिन' प्रोसेसबिल्डर 'में एक' स्ट्रिंग 'को एक vararg 'स्ट्रिंग [1]' के रूप में संभाला जाता है - http देखें : //stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec –

संबंधित मुद्दे