2011-05-04 3 views
14

어느 것이 더 낫습니까? 더 나은 의미는 어느 것이 더 나은 보안 (사용 용이성이 없음)을 의미합니다.ProcessBuilder 대 Runtime.exec()

+0

당신은 '더 나은 보안이'무엇을 의미합니까? –

답변

31

사용의 용이성은이 둘의 유일한 차이점입니다.

사용 편의성은 오용을 방지하여 보안을 강화할 수 있음에 유의하십시오.

은 적어도 오픈 JDK 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'는'command'를 단일'String'으로 취하고 토큰 화하는 과부하를 제외하고는'ProcessBuilder'에서 하나의'String'을 vararg'String [1]'로 취급합니다 - http : //stackoverflow.com/questions/6856028/difference-between-processbuilder-and-runtime-exec –

관련 문제