java呼叫python程式碼

檳城碼農發表於2016-08-22

同樣的我們需要安裝jython,具體的步驟如下:

1. 去 http://sourceforge.net/projects/jython/ 下載最新的jython相關的jar包。

2. 下載下來的jar包其實既是使用的時候需要引入的jar包,也是安裝就jython的jar包。具體安裝細節參照:https://wiki.python.org/jython/InstallationInstructions#jython-2-7-0

其實直接使用: java -jar jython_installer-2.5.2.jar 就可以根據介面指導進行安裝。

3. 如果我們現在想在java中呼叫python程式碼或者執行python檔案,我們只需引入jypthon安裝目錄下的jython.jar即可。(這一點和jruby的使用方式類似)

 

呼叫的程式碼示例如下:

1 PythonInterpreter interpreter = new PythonInterpreter();  
2 interpreter.exec("days=(`mod`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`); ");  
3 interpreter.exec("print days[1];"); 

JavaCallPython

首次呼叫會輸出很多標紅的編譯對應jar包的資訊:

 1 *sys-package-mgr*: processing new jar, `/home/zyq/KiDe/Redis/jar4java/commons-pool-1.5.4.jar`
 2 *sys-package-mgr*: processing new jar, `/home/zyq/KiDe/Redis/jar4java/jedis-2.1.0.jar`
 3 *sys-package-mgr*: processing new jar, `/home/zyq/KiDe/Redis/jar4java/junit-4.8.2.jar`
 4 *sys-package-mgr*: processing new jar, `/opt/jruby/jruby-9.1.2.0/lib/jruby.jar`
 5 *sys-package-mgr*: processing new jar, `/home/zyq/jython2.5.2/jython.jar`
 6 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/resources.jar`
 7 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/rt.jar`
 8 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/jsse.jar`
 9 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/jce.jar`
10 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/charsets.jar`
11 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/jfr.jar`
12 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/sunpkcs11.jar`
13 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/jfxrt.jar`
14 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/cldrdata.jar`
15 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/sunjce_provider.jar`
16 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/zipfs.jar`
17 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/localedata.jar`
18 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/nashorn.jar`
19 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/jaccess.jar`
20 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/sunec.jar`
21 *sys-package-mgr*: processing new jar, `/opt/java/jdk1.8.0_91/jre/lib/ext/dnsns.jar`

FirstInvokeInfo

後續呼叫的結果如下:

1 Tue

Result

 

黎明前最黑暗,成功前最絕望!


相關文章