تصف هذه المقالة طريقة تنفيذ Java للاتصال بـ Jython لتنفيذ ملفات Python. شاركه للرجوع إليه ، على النحو التالي:
أثناء تطوير الويب ، غالبًا ما تستخدم مكتبات الطرف الثالث في البيئة المحلية في بيئة الويب. تشرح هذه المقالة كيف تنفذ Java ملفات Python.
يقال عبر الإنترنت أن هناك ثلاث طرق ، ولكن في الواقع هناك طريقتان فقط. تم تقديم الطريقة الثانية أدناه (Jython).
الطريقة 1
java.lang.runtime runtime rt = runtime.getRuntime () ؛ حاول {process proc = rt.exec ("python /tmp/test.py") ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ }هنا مفهوم فرعي:
1. Runtime.getRuntime() يمكن أن تحصل على بيئة وقت التشغيل في JVM الحالي ، والتي هي أيضًا الطريقة الوحيدة في جافا للحصول على بيئة وقت التشغيل.
2. معظم الطرق الأخرى في وقت التشغيل هي طرق مثيل ، مما يعني أنه يجب استخدام طريقة getRuntime في كل مرة يتم فيها إجراء مكالمة وقت التشغيل.
3. طريقة الخروج في وقت التشغيل هي طريقة للخروج من JVM الحالي ، والتي ربما تكون هي الوحيدة. لأنني رأيت هذا المخرج في فئة النظام يخرج بالفعل من JVM عن طريق استدعاء Runtime.exit() . هنا سأشرح القواعد العامة لـ Java لقيمة إرجاع وقت التشغيل (المذكورة أيضًا لاحقًا). 0 يمثل الخروج الطبيعي ، ولا يمثل عدم 0 الإجهاض غير الطبيعي. هذه مجرد قاعدة جافا. سيكون هناك دائمًا بعض الالتباس البسيط في كل نظام تشغيل.
النوع الثاني (النقطة الرئيسية)
استدعاء Jython API
الخطوة 1: إضافة تبعيات
<!-https://mvnrepository.com/artifact/org.python/jython-> <reperency> <roupeD> org.python </rougeid> <StifactId> jython </stifactid> <sored> 2.7.0 </version> </rependency>
الخطوة 2: إنشاء فئة اختبار جديدة
استيراد org.python.util.pythoninterpreter ؛ استيراد java.util.properties ؛/** * المؤلف: تلبية xiaoxing * البريد الإلكتروني: [email protected] * التاريخ: 17-3-21 * الوقت: 8:18 PM * وصف: jpython test {public static void main ( Pythoninterpreter () ؛ textreter.exec ("days = ('mod' ، 'Tue' ، 'Wed' ، 'Thu' ، 'Fri' ، 'Sat' ، 'Sun') ؛") ؛ المترجمة المترجمة. EXEC ("أيام الطباعة [1] ؛") ؛ مترجم execfile ("/tmp/test.py") ؛ repreter.exec ("print" التي تم إنشاؤها بواسطة Tengxing في 2017.3 '") ؛ }}
الخطوة 3: تشغيل test.java
بدأ الاختبار في الساعة 9:40 مساءً ... تم اختبار test.preated بواسطة tengxing في 2017.3!
انتهت العملية ، رمز الخروج 0
يجوز للتذكير الإبلاغ عن الاستثناء التالي:
الاستثناء في مؤشر ترابط "Main" المستورد: لا يمكن استيراد وحدة الموقع وتبعياتها: لا توجد وحدة مسماة الموقع
حدد ما إذا كانت السمات التالية صحيحة:
السبب: python.import.site لم يتم تهيئة
يحل:
اختبار الفئة العامة {public static void main (string [] args) {properties props = new properties () ؛ props.put ("python.home" ، "Path to the Lib Folder") ؛ props.put ("python.console.encoding" ، "UTF-8") ؛ props.put ("python.security.respectjavaactibility" ، "false") ؛ props.put ("python.import.site" ، "false") ؛ خصائص preprops = system.getProperties () ؛ pythoninterpreter.initialize (preprops ، الدعائم ، سلسلة جديدة [0]) ؛ Pythoninterpreter مترجم = pythoninterpreter جديد () ؛ textreter.exec ("days = ('mod' ، 'Tue' ، 'Wed' ، 'Thu' ، 'Fri' ، 'Sat' ، 'Sun') ؛") ؛ المترجمة المترجمة. EXEC ("أيام الطباعة [1] ؛") ؛ مترجم execfile ("/tmp/test.py") ؛ teanster.exec ("print" التي تم إنشاؤها بواسطة tengxing في 2017.3! '") ؛ }}طيب مثالي
// استدعاء الطريقة في python وطباعة النتيجة pyfunction func = (pyfunction) مترجم. pyobj.tostring ()) ؛
المادة المرجعية:
//www.vevb.com/article/137380.htm
//www.vevb.com/article/137385.htm
المرفق: jython.jar انقر هنا لتنزيل هذا الموقع .
لمزيد من المحتوى المتعلق بـ Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص Tips Java Operation DOM" ، "ملخص ملف Java ونصائح تشغيل الدليل" و "ملخص نصائح Java Cache Operation Tips"
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.