البرمجة

كيفية استدعاء دوال Python من Java

إتصال دوال Python من الشيفرة في Java بدون استخدام Jython

إذا كنت ترغب في استدعاء دوال Python من داخل الشيفرة في Java دون استخدام Jython، يمكنك استخدام نهج يعتمد على تبادل البيانات بين اللغتين. لتحقيق هذا، يمكنك استخدام عدة طرق، منها استخدام مكتبة subprocess في Python لتنفيذ الشيفرة الخاصة بك والحصول على الإخراج الناتج، ثم استخدامه في Java.

الخطوات الأساسية لتحقيق هذا الهدف هي كالتالي:

  1. إنشاء واجهة Java تعرف الدوال التي تريد استدعاؤها من Python.
  2. كتابة دوال Python التي تقوم بما تحتاج إليه وتعيد النتائج بتنسيق يسهل قراءته من Java.
  3. استدعاء تلك الدوال من Java باستخدام مكتبة subprocess.

الخطوات الأساسية لهذا النهج هي كالتالي:

  1. إنشاء واجهة Java:
java
public interface PythonFunctions { String callPythonFunction(String[] args); }
  1. كتابة دوال Python التي تحتاجها:
python
import sys def my_python_function(arg1, arg2): # قم بتنفيذ الشيفرة الخاصة بك هنا result = arg1 + arg2 # قم بطباعة النتيجة ليتمكن Java من قراءتها print(result) if __name__ == "__main__": # قم بقراءة البيانات التي تم إرسالها من Java args = sys.argv[1:] # قم بتنفيذ الدالة الخاصة بك باستخدام البيانات المرسلة my_python_function(*args)
  1. استدعاء دوال Python من Java:
java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class CallPythonFromJava { public static void main(String[] args) throws IOException { // استدعاء الشيفرة الخاصة بك من Python String[] cmd = {"python", "path_to_your_python_script.py", "arg1", "arg2"}; Process process = Runtime.getRuntime().exec(cmd); // قراءة النتيجة من الإخراج القياسي للعملية BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // انتظار انتهاء العملية try { process.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } } }

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

المزيد من المعلومات

بالطبع، هنا بعض المعلومات الإضافية التي يمكن أن تكون مفيدة:

  • لاستدعاء الدوال الخاصة بك من Python، يجب أن يكون لديك Python مثبتًا على الجهاز الذي تقوم بتشغيله.
  • يمكنك تمرير المعلمات إلى الدوال الخاصة بك من Java إلى Python باستخدام الأمر sys.argv في Python. يجب عليك استدعاء الدوال الخاصة بك في Python بالطريقة التي تقبل المعلمات التي تم تمريرها من Java.
  • يجب عليك أيضًا التحقق من إعدادات البيئة الخاصة بك لضمان أن الطريقة python تشير إلى النسخة الصحيحة من Python التي تحتوي على numpy، scipy، وأي مكتبات أخرى تحتاجها.

إذا كانت لديك متطلبات محددة أو استفسارات إضافية، فلا تتردد في طرحها!

زر الذهاب إلى الأعلى