إتصال دوال Python من الشيفرة في Java بدون استخدام Jython
إذا كنت ترغب في استدعاء دوال Python من داخل الشيفرة في Java دون استخدام Jython، يمكنك استخدام نهج يعتمد على تبادل البيانات بين اللغتين. لتحقيق هذا، يمكنك استخدام عدة طرق، منها استخدام مكتبة subprocess في Python لتنفيذ الشيفرة الخاصة بك والحصول على الإخراج الناتج، ثم استخدامه في Java.
مقالات ذات صلة
-
آلة حاسبة C++ باستخدام switch-case20/02/2024
-
تعامل برمجي بسيط مع بيانات JSON في PHP01/03/2024
-
حل تحدي برمجي في المقابلات الفنية05/04/2024
الخطوات الأساسية لتحقيق هذا الهدف هي كالتالي:
- إنشاء واجهة Java تعرف الدوال التي تريد استدعاؤها من Python.
- كتابة دوال Python التي تقوم بما تحتاج إليه وتعيد النتائج بتنسيق يسهل قراءته من Java.
- استدعاء تلك الدوال من Java باستخدام مكتبة subprocess.
الخطوات الأساسية لهذا النهج هي كالتالي:
- إنشاء واجهة Java:
javapublic interface PythonFunctions {
String callPythonFunction(String[] args);
}
- كتابة دوال Python التي تحتاجها:
pythonimport 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)
- استدعاء دوال Python من Java:
javaimport 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، وأي مكتبات أخرى تحتاجها.
إذا كانت لديك متطلبات محددة أو استفسارات إضافية، فلا تتردد في طرحها!