Hangisi daha iyi? Daha iyisi, hangisinin daha iyi güvenlik, vs. olduğu anlamına gelir (kullanım kolaylığı değil).ProcessBuilder vs Runtime.exec()
14
A
cevap
31
Kullanım kolaylığı, bu ikisi arasındaki tek gerçek farktır.
Kullanım kolaylığının, yanlış kullanımdan kaçınmaya yardımcı olarak güvenliğe neden olabileceğini unutmayın.
En azından OpenJDK 6 Runtime.exec()
üzerinde ProcessBuilder
kullanılarak uygulanır:
public Process exec(String[] cmdarray, String[] envp, File dir)
throws IOException {
return new ProcessBuilder(cmdarray)
.environment(envp)
.directory(dir)
.start();
}
+0
"Runtime.exec" komutunun tek bir '' '' '' '' komutunu alıp onu belirleyen aşırı yüklenmelere sahip olması dışında, 'ProcessBuilder'de tek bir 'String' vararg' String [1] 'olarak ele alınır - bkz. Http : //stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec –
sen 'iyi güvenlik vardır' ile neyi kastediyorsunuz? –