+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 پاسخ 421 بازدید
+2 امتیاز
1 پاسخ 967 بازدید
+1 امتیاز
1 پاسخ 618 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
0 امتیاز
1 پاسخ 350 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 526 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
0 پاسخ 422 بازدید
...