الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع class Runtime

بدأه pro.fahd في 26 نوفمبر 2010 · 4 رد · 689 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندما اريد ان استخدم Windows XP command line عن طريق استخدام داله في الclass Runtime

ينفذ بعضها والبعض الاخر لا

مثلا عندما اريد ان اطفئ الجهاز او اعاده تشغيله استخدم


{

try
{
Runtime.getRuntime().exec("shutdown /s");// or /r to restart
}
catch (Exception ex)
{

}
}

}
public static void main(String[] args)

لكن عندما اريد مثلا ان احذف ملف معين لا يتم تنفيذ


{

try
{
Runtime.getRuntime().exec("DEL HelloWorld.TXT");
}
catch (Exception ex)
{

}
 public static void main(String[] args)

هل لدى احد فكره لماذا

وشكراا

albert_einstein.jpg

Untitled-AE.jpg
#2

اين مسار الملف الذى تريد حذفه هذا

HelloWorld.TXT

ومن الافضل لك فى حذف الملفات هى استخدام الداله delete الموجوده داخل الكلاس File

File f = new File("d:/text.txt");
f.delete();

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 26 نوفمبر 2010 في 18:18

Software Developer
Mahmoudkelany.com


 

#3

أولا ... لم لا تطبع ال Stack Trace ؟؟؟!!

ثانيا .. إستخدم:

String[] cmd = new String[3];
			cmd[0] = "cmd.exe" ;
            cmd[1] = "/C";
            cmd[2] = "del C:\\HelloWorld.TXT";
			Process proc = runtime.exec(cmd);

السبب:

ما أعرفه أن Runtime.exec تعمل كما لو قمت بتنفيذ الأمر في نافذه run وليس في ال command propmt ... لذا يجب أن تنفذ أنت ال command prompt و من ثم تنفذ الأمر بداخله ..

ملاحظه /C تستخدم لجعل ال command prompt ينتهي بإنتهاء الأمر ...

البرنامج:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test
{
	public static void main(String[] args)
	{

		try
		{
			Runtime runtime = Runtime.getRuntime();
			String[] cmd = new String[3];
			cmd[0] = "cmd.exe" ;
            cmd[1] = "/C";
            cmd[2] = "del C:\\HelloWorld.TXT";
			Process proc = runtime.exec(cmd);

			InputStream is = proc.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			String line;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
		} catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
}

المصدر:

http://www.owasp.org/index.php/Command_injection_in_Java

2
#4
Mahmoud Kelany كتب:

اين مسار الملف الذى تريد حذفه هذا

HelloWorld.TXT

ومن الافضل لك فى حذف الملفات هى استخدام الداله delete الموجوده داخل الكلاس File

File f = new File("d:/text.txt");
f.delete();

اولا شكرا لك اخي محمود على المشاركه

ثانيا الحقيقه مغزى السؤال ليس كيف احذف ملف انما كيف استخدم ال commend line لنظام التشيغل في حالتي windows XP

فا فيها من الفائده الكثير

انظر للرابط

http://ss64.com/nt/

هويدي كتب:

أولا ... لم لا تطبع ال Stack Trace ؟؟؟!!

ثانيا .. إستخدم:

String[] cmd = new String[3];
			cmd[0] = "cmd.exe" ;
            cmd[1] = "/C";
            cmd[2] = "del C:\\HelloWorld.TXT";
			Process proc = runtime.exec(cmd);

السبب:

ما أعرفه أن Runtime.exec تعمل كما لو قمت بتنفيذ الأمر في نافذه run وليس في ال command propmt ... لذا يجب أن تنفذ أنت ال command prompt و من ثم تنفذ الأمر بداخله ..

ملاحظه /C تستخدم لجعل ال command prompt ينتهي بإنتهاء الأمر ...

البرنامج:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test
{
	public static void main(String[] args)
	{

		try
		{
			Runtime runtime = Runtime.getRuntime();
			String[] cmd = new String[3];
			cmd[0] = "cmd.exe" ;
            cmd[1] = "/C";
            cmd[2] = "del C:\\HelloWorld.TXT";
			Process proc = runtime.exec(cmd);

			InputStream is = proc.getInputStream();
			InputStreamReader isr = new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);

			String line;
			while ((line = br.readLine()) != null) {
				System.out.println(line);
			}
		} catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
}

المصدر:

http://www.owasp.org/index.php/Command_injection_in_Java

شكرا لك اخ هويدي

لقد كانت المشكله زي مذكرت مع اضافه r-

cmd[2] = "del -r xzx.txt ";

albert_einstein.jpg

Untitled-AE.jpg
#5

اممم تمام

انا كنت بعتقد انك عاوز تعمل كدا

لكن معذره على سوء الفهم unsure.gif

رابط جميل تسلم الايادى :)

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة