سؤال

لقد قمنا بكتابة برنامج Java الذي نتطلع إلى استخدامه والتفاعل معه من لغة C#.ما هي خياراتنا؟على النحو الأمثل، سيكون من الممكن تجميع تطبيق Java كمكتبة (.DLL) يمكننا الرجوع إليها من C# ربما باستخدام P/Invoc.ومع ذلك، لا يبدو أن هذا خيارًا وفقًا لعمليات البحث القليلة الأولى عبر الإنترنت.

لقد اخترنا أن نكون قادرين على استخدام ASP.NET لإنشاء محرك بحث مدعوم بكود Java، لذا إذا كان هذا مفتوحًا لأي خيارات أخرى، فيرجى إخبارنا بذلك.

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

المحلول

آسف، أنت cannot استدعاء جافا code / classes Directly من كود C#

إحدى الطرق للقيام بذلك هي wrap قم بتعليم دروس جافا الخاصة بك في ملف java Web Service وفصول الدعوة indirectly من خلال واجهة خدمة الويب تلك في كود C# الخاص بك.

هناك طريقة أخرى تستخدمjavareg.exe الذي يعرض فئات جافا مثل COM.يمكنك العثور عليه في الموقع التالي:

C:\Program Files\Microsoft VisualStudio\VIntDev98\bin\javareg.exe

المشاركات التالية قد تساعد أيضًا

نصائح أخرى

وهذا النهج أبسط من المحتمل أن يكون لنشر وظائف مكتبة جافا بك إلى خدمات الإنترنت وإضافة مرجع الويب من تطبيق asp.net الخاص بك.

وليس المقصود جافا لتكون جزءا لا يتجزأ في برنامج آخر، لذلك كنت في حاجة الى الجسر. الحل الأكثر بسيط هو استخدام المقبس: إنشاء عملية جافا والتي يستمع لأوامر على مأخذ. في C #، وإرسال الأوامر إلى مقبس وقراءة الإجابات.

والمشكلة الرئيسية هنا هو التسلسل ولكن إذا كنت تستخدم XML، انها ليست مثل هذا الألم كبير بعد الآن. محاولة المدمج في التسلسل XML ( نرى هذه المقالة ) أو أطر مخصص مثل <ل أ href = "http://xstream.codehaus.org/" يختلط = "noreferrer نوفولو"> القناة Xstream أو بسيطة .

ومن المؤكد الممكن التفاف جافا في ملف .dll، وكانت جزءا من منصة جافا الأساسية لأكثر من 10 عاما. JNI (جافا واجهة الأصلية) يحتوي على واجهة مبنية على JVM في التعليمات البرمجية، مما يعني أنه يمكن تشغيل فئات Java باستخدام ربط الطراز C. لاحظ أن هذا سيتطلب أن تكتب C المجمع بسيطة، وهناك عينات من الداخل: http://java.sun.com/docs/books/jni /html/invoke.html#11202

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

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