+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 پاسخ 279 بازدید
+2 امتیاز
1 پاسخ 789 بازدید
+1 امتیاز
1 پاسخ 506 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
0 امتیاز
1 پاسخ 239 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 335 بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
0 پاسخ 295 بازدید
...