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

استدعاء تطبيق

مغلق
بدأه C&DEL في 29 ديسمبر 2005 · 8 رد · 784 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في نظام M$ Windows كنت استعمg توابع الـ API للاستدعاء تطبيق من مسار معين مثل التابعين :

ًWinexec
shellexec

لكن استعمال هذه التوابع من JNI يتم تخصيصه فقط لنظام تشغيل معين فهل من طريقة لاستدعاء تطبيق ما دون اللجوء الى استعمال JNI لأنني على فرض أنه يوجد لدي تطبيق جافا يستدعي تطبيقين

الأول يتم استدعاؤه عندما يكون نظام التشغيل ويندوز

و الثاني عندما نظام التشغيل لينكس

بحثت بالمنتدى و لم أصل لحل

مدونتي

http://mbnoimi.net

#2

اليكم محاولاتي ....

قمت بتعريف متغييرين نصيين يحتويان على مسار الاستدعاء :

    public String str1 = "\"/Files/Projects Java/System/RunApp/Executes\"";
    public String str2 = "\"/Files/Projects Java/System/RunApp/Executes/GetSysProp.jar\"";

ثم قمت بانشاء الطرق الثلاثة التالية :

1- من أجل تطبيق Windows

        JOptionPane.showMessageDialog(null,str1);
        try {
         java.lang.Runtime.getRuntime().exec("cd "+str1);      
         java.lang.Runtime.getRuntime().exec("Project.exe");      
         
        } catch (Exception e) {
         JOptionPane.showMessageDialog(null,e.toString());
        }

2- من أجل تطبيق لينكس

        JOptionPane.showMessageDialog(null,str1);
        try {
         java.lang.Runtime.getRuntime().exec("cd "+str1);      
         java.lang.Runtime.getRuntime().exec("./GetSysProp.bin");      
         
        } catch (Exception e) {
         JOptionPane.showMessageDialog(null,e.toString());
        }

3- من أجل ملف Jar مستقل عن نظام التشغيل

        JOptionPane.showMessageDialog(null,str2);
        try {
         java.lang.Runtime.getRuntime().exec("jar -jar "+str2);      
         
        } catch (Exception e) {
         JOptionPane.showMessageDialog(null,e.toString());
        }

و اليكم الشيفرة ...

RunApp.zip

مدونتي

http://mbnoimi.net

#3

لم أفهم ماذا تريد؟!

#4

السلام عليكم

و الله الشرح كافي ... أنا احترت كيف سأشرح السؤال أكثر من ذلك ..... على كل اليك هذا المثال :

قم بتشغيل التطبيق RunApp.exe و انقر الزر ضمن النافذة ليظهر لك مربع اختيار اختار التطبيق Project4.exe ..... هذه هي كل العملية التي أريدها لكن بلغة Java بدلا من Delphi ..... و كما هو ملاحظ يتم استدعاء تطبيق خاص بWindows ... بينما أنا أريد استدعاء تطبيق لـ Windows و Linux

Run.rar

مدونتي

http://mbnoimi.net

#5

فهمت المثال وفهمت تقريبا شفراتك بالأعلى...

لكن لم أفهم ما المشكلة!؟

#6

المشكلة أن الشيفرات بالأعلى لا تعمل ..... يعني بشكل مختصر أريد أن أعمل بريمج بالجافا مطابق لبريمج الدلفي

مدونتي

http://mbnoimi.net

#7

لا أرى صعوبة في هذا:

package test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class ExecutionTest{

	public static void main(String[]art){
  JFrame f=new JFrame();
  f.add(new JButton(new AbstractAction("loader.exe"){
 	 public void actionPerformed(ActionEvent e){
    try {
   	 Runtime.getRuntime().exec("C:/Program Files/Xinox Software3/JCreatorV3/loader.exe");
       }
       catch (Exception ex) {
        ex.printStackTrace();
       }
 	 }
  }));
  f.setVisible(true);
  f.pack();
  f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
	}
}
#8

المشكلة أخي أبو مازن أنا اللينكس يدعم طريقة أخرى لشجرة الملفات

هل هناك من شيء يساعدنا على معرفة نظام التشغيل الحالي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9
اقتباس
هل هناك من شيء يساعدنا على معرفة نظام التشغيل الحالي

لمعرفة نظام التشغيل

System.getProperties().getProperty("os.name")

منقطع من حين لاخر

هذا الموضوع مغلق.

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