cevap 1:
  1. Runtime.exec () ve Process builder arasındaki fark:
  • Runtime.exec (String) yöntemi, bir komuta ve bir argüman dizisine böldüğü tek bir komut dizesini alır. dizide veya listede tek bir bağımsız değişken olduğu varsayılır. Her iki durumda da, elde edilen argümanlar yürütmek için işletim sistemine iletilen bir dizeye birleştirilir.

Yani, örneğin, Windows'ta,

Runtime.getRuntime (). Exec ("C: \ DoStuff.exe -arg1 -arg2");

verilen iki bağımsız değişkeni içeren bir DoStuff.exe programı çalıştırır. Bu durumda, komut satırı tokenleştirilir ve tekrar birleştirilir. Ancak,

ProcessBuilder b = new ProcessBuilder ("C: \ DoStuff.exe -arg1 -arg2");

C: \ konumunda DoStuff.exe -arg1 -arg2 olan bir program olmazsa başarısız olur. Bunun nedeni, tokenizasyon olmamasıdır: çalıştırma komutunun zaten tokenleştirildiği varsayılır. Bunun yerine,

ProcessBuilder b = yeni ProcessBuilder ("C: \ DoStuff.exe", "-arg1", "-arg2");