View Full Version : معادل توابع system و دستور definition سی پلاس پلاس در جاوا
asdasd123123
سه شنبه 05 آذر 1392, 09:30 صبح
سلام دوستان
اگه بخواهیم از دستورات زیر که به زبان سی هست در جاوا بهره برد چه باید کرد؟
- اجرای فایل exe یا bat
system("FileName.bat");
- پاک کردن صفحه ی کنسول
system("cls");
- و بقیه دستورات cmd مثل telnet ، ping ، format و ...
اصلا میشه این کارها رو با جاوا کرد؟ چجوری میشه؟
-------------------------------------------------------------------------------------------
- برای تعریف کردن چه کار باید کرد مثلا System.out.print را به cout تعریف کنیم و بجای اون از cout در کدها استفاده کرد؟
asdasd123123
سه شنبه 05 آذر 1392, 11:26 صبح
ما را از اطلاعات بی کران خود محروم نگردانید... :چشمک: :تشویق: :بوس:
یه سوال دیگه: چطوری از کدهای اسمبلی درون سورس کد جاوا بهره ببریم؟
cups_of_java
سه شنبه 05 آذر 1392, 12:24 عصر
دستورات سیستمی رو می تونی با این کد اجرا کنی:
Runtime.getRuntime().exec("cls");
- برای تعریف کردن چه کار باید کرد مثلا System.out.print را به cout تعریف کنیم و بجای اون از cout در کدها استفاده کرد؟
یعنی چی آخه؟ وقتی print داره خود جاوا چرا از cout استفاده کنی؟ همون کارو برات می کنه دیگه. سی پلاس پلاس که نمی نویسی.
cups_of_java
سه شنبه 05 آذر 1392, 12:26 عصر
ما را از اطلاعات بی کران خود محروم نگردانید... :چشمک: :تشویق: :بوس:
یه سوال دیگه: چطوری از کدهای اسمبلی درون سورس کد جاوا بهره ببریم؟
این کار ها رو با JNI میشه انجام داد. اینو ببین (https://today.java.net/pub/a/today/2006/10/19/invoking-assembly-language-from-java.html)
asdasd123123
شنبه 09 آذر 1392, 11:14 صبح
یعنی چی آخه؟ وقتی print داره خود جاوا چرا از cout استفاده کنی؟ همون کارو برات می کنه دیگه. سی پلاس پلاس که نمی نویسی.
ممنون از اینکه جواب دادید. منظورم اینه که این عبارت طولانیه و یه عبارت ساده تر define کنیم تا سریع تر کد بزنیم، نه اینکه cout رو در جاوا پیاده سازی کنیم.
مثلا در سی پلاس پلاس میشه این کار رو کرد:
#include <iostream>
using namespace std;
#define cout<<"Hello" hello
int main()
{
hello;
}
cups_of_java
شنبه 09 آذر 1392, 16:17 عصر
به این میگن Macro
نه ما توی جاوا مکرو نداریم.
الان دیگه با وجود ابزار پیشرفته برنامه نویسی نیازی به این کارا نیست. اولن که خود System.out.println توسط ادیتور شما همش autocomplete میشه. دومن که توی نرم افزارهای سازمانی از این استفاده نمی کنن و از Logging استفاده می کنن و اونجا این طولانی بودن دیگه ب چشم نمیاد. سومن اگر بخوای این کوتاه سازی رو انجام بدی با تعریف یه متد یه حرفی توی یه کلاس به حرفی دیگه می تونی اینکار رو بکنی.
asdasd123123
یک شنبه 10 آذر 1392, 07:52 صبح
دستورات سیستمی رو می تونی با این کد اجرا کنی:
Runtime.getRuntime().exec("cls");
این دستور واسه باز کردن برنامه بود و وقتی که cls بدی بهش ارور می گیره ولی مثلا این:
Runtime.getRuntime().exec("regedit");
بدون ارور اجرا میشه و برنامه باز میشه. این هم ارور:
Exception in thread "main" java.io.IOException: Cannot run program "cls": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java :1041)
at java.lang.Runtime.exec(Runtime.java:617)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at test.Test.main(Test.java:7)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java :1022)
... 4 more
Java Result: 1
cups_of_java
یک شنبه 10 آذر 1392, 15:33 عصر
اول اینکه اجرا کردن cls توی محیط جاوا کمی بی معنیه چون توی ترمینال معنی میده این دستور و اگر اجراش کنی مطمین نیستم درست اجرا شه...
نکته دوم اینکه باید مسیر دقیق فایل اجرایی cls.exe یا cls.bat یا هر چی که هست رو بهش بدی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.