Jython的簡單使用


Jython的簡單使用

 

這段時間要做一個畢業設計,主要設計到圖片識別的東西,但是機器學習那一塊是用CAFFE的python接口做的,然后Web和APP使用Java語言開發的,所有開發的應用項目(網站和移動客戶端)需要調用圖片識別的python腳本,后來查查資料,使用Jython可以滿足在Java中執行python腳本。

 

測試環境:

  • Eclipse
  • 1.8的JDK
  • Jython版本2.5.2(只要jar包就行了)

 

這里默認大家已經安裝了Eclipse和JDK,JDK不是1.8的也可以,使用平時開發用的JDK就可以了,至於jython.jar需要到官網去下載

 

1.建立一個java project,然后將jython.jar文件放到目錄下,然后選擇Build Path,將jython.jar Add to Build Path這樣 就能使用jython的API了

 

2.在上面的圖片中,已經顯示了我的project的目錄,其中src主要放測試代碼,lib放jar包,images里面可以放一下后期要用到的圖片,pythonfile里面存放python腳本

 

3.建立相關文件后

其中my_utils.py中,我就簡單的放了一個函數,主要是演示一下,java調用python文件的方法;Test.java里面是java的測試函數入口

先展示一下my_utils.py中的代碼:

#coding:utf-8

#do not have chinese

def adder(a, b):  
    return a + b

if __name__ == '__main__':
  print(adder(2, 10))

 

4.下面介紹兩種調用方法:

(1)在Java文件中調用本機python腳本中的函數

  Test.java:

1 //調用python文件中的函數,進行兩個數求和運算
2 PythonInterpreter interpreter = new PythonInterpreter();  
3 interpreter.execfile("./pythonfile/my_utils.py");  
4 PyFunction func =     (PyFunction)interpreter.get("adder",PyFunction.class);  
5 int a = 10, b = 2 ;  
6 PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));  
7 System.out.println("anwser = " + pyobj.toString());  

 

 
        

(2)在Java文件中直接執行python腳本

  Test.java:

1 //直接運行python腳本
2 PythonInterpreter interpreter = new PythonInterpreter();
3 
4 //執行python py文件 
5 interpreter.execfile("pythonfile/my_utils.py");   

兩次的結果都是12,區別 是:方法一調用函數,需要傳遞參數,大家可以注意一下,在Java文件中參數的傳遞方法,這算是Jython的一個特點吧;第二種方法直接運行腳本,在Python中將文件作為腳本運行可以加上if __name__ == '__main__'來判斷,如果是作為腳本運行,就會執行if里面的代碼,在這里就是調用一下函數,並打印結果。

 

備注:其實還可以直接在Java中執行python語句,不過我感覺這種實用性不是很大,從封裝代碼的角度來考慮,基本上不會用這種方法,大家了解就好。

 

關於如何在Java中調用Python模塊的簡單介紹到這就結束了,后面項目里面用到更深入的,我再更新。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM