سؤال

لدي برنامج جافا وهذا هو الغالب واجهة المستخدم الرسومية و تظهر البيانات التي يتم كتابتها إلى ملف xml من c++ أداة سطر الأوامر.الآن أريد أن إضافة زر إلى برنامج جافا لتحديث البيانات.هذا يعني أن البرنامج قد اتصل c++ وظائف.

هو أفضل وسيلة فقط اتصل البرنامج من جافا من خلال نظام الاتصال ؟ C++ برنامج سيتم تجميعها في نظام التشغيل mac os و windows و يجب أن تكون دائما في نفس الدليل كـ برنامج جافا.

وأود أن إنشاء قابل للتنفيذ يمكن برنامج c تكون مخزنة داخل جرة ودعا من البرنامج ؟

هل كانت مفيدة؟

المحلول

وبافتراض عدم وجود وسيلة اتصال أفضل يتوفر (SOAP، ICE، والمقابس، الخ)، وكنت أدعو للتنفيذ باستخدام Runtime.exec(). JNI يمكن استخدامها لواجهة مباشرة، لكنني لن المستحسن. لا لا يمكنك وضع قابل للتنفيذ في جرة. حسنا تستطيع، ولكن لا يمكنك تشغيله، منذ قذيفة لا يعرف كيفية تشغيله.

نصائح أخرى

إذا كان لديك الوصول إلى مدونة و تريد 'التفاعلية' تجربة مع برنامج خارجي (على سبيل المثال ، إجراء مكالمة ، الحصول على نتائج إضافية المكالمات) ، والتحقيق JNI ، مما يتيح لك استدعاء C أو C++ رمز من تطبيق جافا من قبل بما في ذلك ربط JNI عصير C أو C++ التطبيق مع .

انظر:

http://en.wikipedia.org/wiki/Java_Native_Interface

http://www.acm.org/crossroads/xrds4-2/jni.html

إذا كنت حقا بحاجة فقط إلى "إطلاق التطبيق والحصول على النتائج" نوع من الحل ، تحقق من وقت التشغيل.exec () ، مما يتيح لك إطلاق برنامج خارجي & القبض على انتاجها.

انظر:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

http://www.rgagnon.com/javadetails/java-0014.html

لإجابة السؤال الأخير الخاص بك، لا يمكنك تشغيل قابل للتنفيذ من داخل جرة الخاص بك.

ومع ذلك، <م> يمكن تخزينه داخل جرة واستخراج إلى دليل / ملف مؤقت قبل تشغيله (التحقق من وجودها للمرة الأولى واستخراج إذا لزم الأمر). وهذا تبسيط التوزيع إلى حد ما، في أن لديك سوى جرة لتوزيع، ويضمن لك تقوم بتشغيل ملف قابل للتنفيذ يطابق أكواد جافا متنافر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top