بسم الله الرحمن الرحيم
شباب ابي كود جافا يقوم بتشغيل ملف تنفيذي
الموضوع مختصر :)
منتظر اجاباتكم
بسم الله الرحمن الرحيم
شباب ابي كود جافا يقوم بتشغيل ملف تنفيذي
الموضوع مختصر :)
منتظر اجاباتكم
سبحان الله وبحمده - - - سبحان الله العظيم
في الحقيقه اذا اردت ان تشغل ملف exe فيمكنك تشغيله كعمليه من داخل الجافا process
try
{
Runtime rt = Rintime.getRuntime() ;
Process p = rt.exec("Program.exe") ;
InputStream in = p.getInputStream() ;
OutputStream out = p.getOutputStream ();
InputSream err = p,getErrorStram() ;
//do whatever you want
//some more code
p.destroy() ;
}catch(Exception exc){/*handle exception*/}الكود منقول من مصدر خارجي للفائدة ، لم اقم بارفاق الرابط لاني لا ادري ما اذا كان مسموح ارفاق رابط موقع خارجي
كنت قد مررت بهذه المشكلة من قبل وهذا الكود ساعدني
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

يعطيك العافية .. ياليت والله تزودنا بالمصدر ..
عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..
{ لا ينال العلم مستحٍ ولا مستكبر }
سوالك غير واضح
يرجى التوضيح اكثر
لان هناك اكثر من اجابه لسوالك ولكن وفقا لبعض الفروقات بينهما
يرجى شرح اى ملف وملف ايه؟؟
هذا الموضوع الاول اللي في منتدى واحد بيطلب فيه نفس الطلب اللي طلبه الاخ AboShabrah ، ملاحظة بعض الروابط في الموضوع ميتة
http://www.daniweb.com/software-development/java/threads/7710
وهناك ايضا هذا الموضوع يتكلم عن استدعاء external processes
http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html
كما ذكر الاخ محمود : ماهو نوع الملف
لان هناك اختلافات في الاستدعاءات مثلا اذا استدعيت ملف JAR قد يختلف الامر وندخل في class loader
لذا نرجوا من الاخ AboShabrah ان يوضح ماهو نوع الملف بالضبط لنكون on the same page
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

الملف هو برنامج معمول بلغة سي ومترجم يعني ملف تنفيذي علما اني اعمل على بيئة لينكس
سبحان الله وبحمده - - - سبحان الله العظيم
الأحسن أنك تقوم بإستدعاء البرنامج بإستخدام ال JNI ...
وضج اكثر ماهذه الJNI هل هي دالة او مكتبة او او وكيف تستخدم؟
في انتظارك اخي الفاضل
سبحان الله وبحمده - - - سبحان الله العظيم
بدال ملف تنفيذى استخدم الرد الذى قدمه لك الاخ mental-driller
مادام بتشتغل بالينوكس حط مسار البرنامج في string ومرره الى الداله exec()
مثلا البرنامج حقك ممكن يكون في usr/myapp/ اذا تمرره للداله exec() طبعا لو كان البرنامج حقك فيه options زي ls -a بتسوي تعديل بسيط
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

لم يفلح الكود ابدا
الكود الي استعملتة
package javaapplication10;
import java.io.InputStream;
import java.io.OutputStream;
public class Main {
public static void main(String[] args) {
try
{
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("a.out");
InputStream in = p.getInputStream();
OutputStream out = p.getOutputStream();
InputStream err = p.getErrorStream();
p.destroy() ;
}catch(Exception exc){/*handle exception*/}
}
}الخارج على التيرمنال
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name: javaapplication10/Main) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: Main. Program will exit
هو الي ببالي والي ابية من الكود هذا اني انفذ اوامر النظام من خلال الجافا عندي اكثر من كود لكن يطبع الناتج بعد اغلاق العملية وانا اريدة يطبع الناتج والعملية شغالة لان العملية لا تغلق بل تستمر وتعطي الشبكات القريبة ومدا قربها (هذا برنامج)
ولا توجد دالة من System("Cmd") مثل الي في لغة السي اما فكان فكري اني اسوي برنامج بلغة السي وامرر له العملية وهو ينفذها والي اريد اشغلة الان (الي اسمة a.out في الكود) يطبع ناتج على الشاشة للتجربة عمل الكود فقط.!
تم تعديل هذه المشاركة بواسطة AboShabrah في 13 مايو 2011 في 20:16
سبحان الله وبحمده - - - سبحان الله العظيم
لا ادري ان كنت قد قرأت ردي قبل ان ترد
يجب ان تضع المسار ، اذا لم تفلح هذه الطريقه جرب
rt.exec("/bin/bash -c 'ls -a'");بما ان الاوامر تترجم بواسطة الــ shell
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

استخدم الفئة Desktop
http://download.oracle.com/javase/tutorial/uiswing/misc/desktop.html
واستدعى الدالة
desktop.open(file);
تحياتى
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳
ما هو الافضل بدل ما تكتب المسار بايدك استخدم الـ JFileChooser
تم وضع المسار كامل ولم افلح
اقتباسمادام بتشتغل بالينوكس حط مسار البرنامج في string ومرره الى الداله exec()مثلا البرنامج حقك ممكن يكون في usr/myapp/ اذا تمرره للداله exec() طبعا لو كان البرنامج حقك فيه options زي ls -a بتسوي تعديل بسيط
جربت كم كود لم يخرج اي نتائج لكن جربت كود mkdir ونفذه :)
سبحان الله وبحمده - - - سبحان الله العظيم
لا ادري هل جربت
rt.exec("/bin/bash -c 'ls -a'");ربما لم تعمل بعض الاوامر لانها alias وليست امر فعلي
قم بكتابة
type <instruction>
وجرب على كل الاوامر اللي مش alias وقول لي
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

خلاص اخوي الغالي لاتتعب نفسك معي اصلا انا ماهو عاجبني في الجافا الي ال NetBeans هههه ولا هي ماراح تناسبني لاني ابرمج برامج بسيطة يعني الجافا اكبر مني
شكرا لكم اخواني والله يعين قسم البايثون علي الان ههه
سبحان الله وبحمده - - - سبحان الله العظيم
اقتباسجربت كم كود لم يخرج اي نتائج لكن جربت كود mkdir ونفذه :)
اذا راجع اوامر سطر الاوامر الخاصة بنظام التشغيل الذى تعمل عليه وستجد الحل
على كل لا اظن ان python ستقدم لك خدمات اكثر من الجافا :)
ومرحبا بك فى قسم الجافا فى اى وقت
بالتوفيق
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳
قد يفيدك الرابط التالي: