+1 امتیاز
قبل در برنامه نویسی توسط (102 امتیاز)
ویرایش شده قبل توسط

در جاوا به دو صورت می توان یک پروسس خارجی را اجرا کرد. اول با RunTime().getRuntime().exec که از جاوا 1 بوده و یکی هم با استفاده از ProcessBuilder که از جاوا 1.5 اضافه شده است. این دو چه فرقی با هم دارند و چرا بعضی وقتها فرمانی توسط یکی اجرا و توسط دیگری اجرا نمی شود.

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

تنها تفاوت این دو روش در سادگی استفاده از آنهاست، البته روش ProcessBuilder ممکن است از بعضی از خطاهای امنیتی که در زمان کد نویسی بوجود می آید جلوگیری کند.

Runtime.getRuntime().exec یک پارامتر String می گیرد که شامل دستور و آرگومان ها بصورت یکجا می باشد:

Runtime.getRuntime().exec("C:\yourprogram.exe -arg1 -arg2");

اما ProcessBuilder یک پارامتر String و یک پارامتر varargs از نوع String می گیرد، که پارامتر اول دستور اجرایی و پارارمترهای بعدی هر کدام یک آرگومان در نظر گرفته می شوند:

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

اگر آرگومان ها را درون پارامتر اول به ProcessBuilder بدهید خطا می دهد:

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

سوالات مشابه

0 امتیاز
0 پاسخ 430 بازدید
+2 امتیاز
1 پاسخ 976 بازدید
+1 امتیاز
1 پاسخ 624 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
0 امتیاز
1 پاسخ 355 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 534 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
0 پاسخ 440 بازدید
...