Làm cách nào để kết nối mã python với mã java?
Theo thực tế của tôi, một trong những trường hợp cuối cùng tôi gặp là tác vụ khi công cụ ứng dụng cơ sở ở Java và tôi phải thêm tính năng Học máy mới. Thách thức chính ở đây là tính năng ML có trong Python Show Vậy chúng ta sẽ làm gì? . Hoặc chúng ta có thể tìm một giải pháp thân thiện với sản xuất hiệu quả hơn. để thực thi mã python trực tiếp từ mã Java thông qua thư viện Jep (Java Embedded Python) Thư viện JEP là gì — Bản thân Voodoo thuần túyDưới đây là một số trích dẫn từ Câu hỏi thường gặp của họ trên GitHub
Và đây là một trích dẫn liên quan đến việc thực thi mô-đun Python
Hiệu suất tốc độ là một số liệu quan trọng, đặc biệt nếu ứng dụng của bạn xử lý Dữ liệu lớn. Các thử nghiệm trong nghiên cứu của tôi cho thấy rằng việc sử dụng JEP gần như là thực thi python thuần túy Cách thiết lập JEP cho dự án của bạnGiả sử bạn có Java (Maven) và Python trong hệ thống của mình. Trong dự án Java, trong tệp Chạy trong thiết bị đầu cuối dự án mvn clean installormvn clean install -DskipTests Bạn đã cài đặt JEP trong Java Để cài đặt JEP trong Python, hãy chạy pip install jep Lệnh này cài đặt phiên bản JEP mới nhất. Bạn có thể chỉ định một phiên bản JEP cụ thể nếu bạn cần. Trong ví dụ của tôi, tôi sử dụng JEP 4. 0. 3 phiên bản Phiên bản không tương thích là đáng kể ở đây. Phiên bản Python và phiên bản thư viện Jep càng thấp, bạn càng sử dụng cú pháp java phức tạp hơn (và ngược lại). Nhưng các phiên bản JEP mới nhất có thể dễ dàng thực thi cú pháp của các phiên bản cũ của JEP Trong hệ thống của bạn bắt buộc phải thiết lập biến môi trường. Đối với macOSX, nó sẽ giống như chạy trong thiết bị đầu cuối export DYLD_LIBRARY_PATH=" Và đừng quên thêm dòng tương tự vào tệp Bên cạnh đó, đối với hệ thống Linux, nó sẽ là một tên biến môi trường khác export LD_LIBRARY_PATH=" Bạn thiết lập thư viện JEP. Bây giờ bạn có thể thực thi Python trực tiếp từ Java Cú pháp cho Python 3. 8 chip macOSX M1Trước tiên, chúng ta nên xác định đường dẫn thư viện JEP (cụ thể là nơi Java sẽ tìm kiếm Python để thực thi) và khởi tạo đối tượng MainInterpreter Ví dụ về cách thiết lập Đường dẫn Python cho thư viện Jep trong JavaThứ hai — để thiết lập cấu hình JEP (chúng ta nên thêm các thư viện Python để vận hành và các thư mục dự án của chúng ta). Sau đó, tạo một đối tượng SharedInterpreter. SharedInterpreter trực tiếp sẽ thực thi mã python hoặc tài liệu điều hành python Ví dụ về cách thiết lập cấu hình Jep và tạo SharedInterpreter để thực thi PythonTôi có một tài liệu python với hai chức năng đơn giản để kiểm tra công việc của JEP. Một chức năng nên sử dụng thư viện Python gốc để tìm kiếm các tài liệu cụ thể trong thư mục. Hàm thứ hai gọi thư viện Python phức tạp hơn, Spacy. Đảm bảo rằng bạn đã cài đặt trong Python thư viện Spacy với các mô hình đã tải xuống trước khi chạy Jep Ví dụ về các hàm Python đơn giản để kiểm tra JepBây giờ, chúng ta hãy chạy các hàm tài liệu Python từ Java đầu ra là >>> [Apple, Apple, PROPN, NNP, nsubj, Xxxxx, true, false] Điều này thật tuyệt. Chúng ta có thể gọi và thực thi Python trực tiếp từ Java. Nhưng khoan, còn cú pháp cho các phiên bản Python khác mà tôi đã đề cập ở đầu bài viết thì sao? Cú pháp cho Python 3. 9 chip macOSX M1Mình đã nói trước các bản Python và Jep cao hơn, cú pháp trong Java đơn giản hơn. Đó là bởi vì, trong các phiên bản Jep mới nhất cho Python 3. 9+ phiên bản, Nhà phát triển JEP đã thêm tính năng tự động tìm kiếm đường dẫn Python khi bạn thực hiện “pip install jep”. Hãy xem cú pháp dưới đây Ví dụ về cách đặt đường dẫn cho jep và tạo SubInterpreter để thực thi python3. 9Bốn dòng mã và chúng tôi có một python3. 9 Thông dịch viên trong Java. Bây giờ bạn sẽ thấy cách chạy các hàm Python từ tài liệu mà bạn đã xem Ví dụ về cách chạy python3. 9 hàm từ Java JepCác bản in sẽ giống như đối với Python 3. 8 phiên bản. Đó là tất cả mọi người kết luậnTrong hướng dẫn này, bạn đã có hướng dẫn rõ ràng về cách thực thi mã Python của mình từ bất kỳ ứng dụng Java nào cho Python 3. 8 và Trăn 3. 9 phiên bản Tất cả code ví dụ trong bài bạn có thể chạy trên chip macOS M1 và Linux. Bạn chỉ cần setup đúng thư viện Jep cho từng hệ thống Python kết nối với mã Java như thế nào?Làm cách nào để kết nối mã Python với Java? . Đối số tập lệnh Python của chúng tôi có tên user_name sẽ nhận giá trị của biến tên mã Java của chúng tôi. Thực thi mã Python bằng phương thức exec(). Nhận giá trị trả về từ Python trở lại Java. Inject a String argument which will be used by the Python code: Our Python script argument named user_name will get the value of our Java code name variable. Execute the Python code using exec() method. Get a return value from Python back to Java.
Bạn có thể kết hợp Python và Java không?Điều này trực tiếp giúp tăng năng suất của lập trình viên. Tương tác liền mạch giữa Python và Java cho phép các nhà phát triển tự do kết hợp hai ngôn ngữ cả trong quá trình phát triển và vận chuyển sản phẩm .
Có thể sử dụng mã Java trong Python không?Py4J cho phép các chương trình Python chạy trong trình thông dịch Python truy cập động các đối tượng Java trong Máy ảo Java . Các phương thức được gọi như thể các đối tượng Java nằm trong trình thông dịch Python và các bộ sưu tập Java có thể được truy cập thông qua các phương thức thu thập tiêu chuẩn của Python. |