View Full Version : اجرا کردن دستورات لینوکس در جاوا
Ebrahimkh
یک شنبه 29 تیر 1393, 18:51 عصر
سلام دوستان
یه مقاله ای یا نوشته ای که در این باب کامل باشه سراغ ندارید
می خوام بتونم خیلی راحت دستورات جاوا رو ران کنم بدون استفاده از کلاس Proccess
یا exec
Ebrahimkh
دوشنبه 30 تیر 1393, 15:13 عصر
دوستان کسی پاسخی در این باب نداره ......
جاوا کاران خواهشن یه راهنمایی کنید
cups_of_java
دوشنبه 30 تیر 1393, 22:09 عصر
شما سوالتون رو دقیق نپرسیدید... یعنی چی دستوارت رو اجرا کنید بدون exec یا process ?
یعنی اینکه اگر از اینا نمیخوای استفاده کنی پس چیکار می خوای بکنی؟ اینا برای همین منظورن.... هدفت چیه؟ مشکلت چیه؟
tux-world
دوشنبه 30 تیر 1393, 22:10 عصر
بدون اونها ممکن نیست. حالا باز هم دقیق نمیشه فهمید منظورش چیه.
Ebrahimkh
دوشنبه 30 تیر 1393, 22:27 عصر
بازم ممنون بخاطر راهنمایی دوستان./
مثلا اگه ما بخواهیم دستور ls -al رو ران کنیم باید از چه دستوری در جاوا استفاده کنیم؟؟
آیا این کلاسها توانایی ران کدن این دستورات رو دارند یا نه؟؟
الان شما اگه بخواهید یه برنامه ssl رو ران کنید بعد از اینکه به پورت 22 وصل شدید نیاز به ران کردن دستورات لینوکس دارید
در کل می خوام یه محیطی شبیه ترمینال لینوکس راه اندازی کنم با چه دستوری می تونم فرامین لینوکس رو در جاوا ان کنم؟؟؟
اگر منبعی هم در دسترس دارید سپاسگذار میشم لینکش رو بهم بدهید.
بازم سپاسگذارم بخاطر راهنماییهاتون
محمد فدوی
سه شنبه 31 تیر 1393, 11:08 صبح
بین اجرا کردن دستورات این چنینی توی گنو/لینوکس و ویندوز تفاوتی نیست...
Process process = Runtime.getRuntime().exec("ls -a");
اگر میخوای نتایج دستور رو هم داشته باشی توی شئ Process یه InputStream هست که میتونی با روش های مختلفی (مثلا با یه BufferedReader) بخونیش.
* لینوکس صرفا یه کرنل هستش و اگه منظورت سیستم عامل های لینوکسی متن بازه از واژه صحیح تر گنو/لینوکس (GNU/Linux) استفاده کن.
موفق باشی.
Ebrahimkh
سه شنبه 31 تیر 1393, 12:17 عصر
سلام محمد جان
--------------------
شرمنده داداش بنده هم میدونم لینوکس یه کرنل هستش
-------------
بازم قربون محبتت بخاطر راهنماییهات
-------------
حقیقتش من می خوام خروجی این دستورات رو ببینم الان شما فرمودید باید از inputstream استفاده کنم
ممکنه یه سورس در این باب آپ کنی تا راحت تر این موضوع رو درک کنم
-------------------------
از اینکه راهنمایی می کنید بسیار سپاسگذارم
محمد فدوی
سه شنبه 31 تیر 1393, 12:35 عصر
خواهش میکنم. اینم واسه دریافت خروجی:
String command = "ls -a"; // Microsoft Windows: "dir /ah"
String result;
Process process;
try {
System.out.printf("EXEC: %s\n", command);
process = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); // Or you can Try-With-Resources for Java 7
System.out.println("-----\nRESULTS:");
while((result = br.readLine()) != null) {
System.out.println(result);
}
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
البته اینو اشاره کنم با این کارها شما میتونی دستورت رو توی سیستم خودت اجرا کنی فقط... برای اجرا کردن دستورات توی شبکه یا باید ssh راه بندازی یا باید از یه برنامه کارگر (Worker) استفاده کنی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.