Python與Java之間的相互呼叫——Jython
概述:
Jython 是一種可以把兩種不同的程式語言結合在一起的工具。首先,它使Python 程式設計師介入到Java 開發環境並讓他們能快速開發方案原型,以便無縫地整合到現有的Java 平臺上。其次,它能在Java 中加入指令碼語言,並以此來簡化數計百萬計的Java 程式設計師的工作。Java 程式設計師們,再也不用為他們剛寫的一個類寫一大堆的測試用例或驅動程式。Jython 提供了Python 的大部分功能,以及例項化Java 類並與Java 類互動的功能。Jython 程式碼被動態地編譯成Java 位元組碼,因此,你可以用Jython 擴充套件Java 類。也可以用Java 來擴充套件Python。在Python 中寫一個類,像使用Java 類一樣使用這個類是很容易的事情。你甚至可以把Jython 指令碼靜態地編譯為Java 位元組碼。
——《Python核心程式設計》
本人環境:
系統:CentOS release 6.5 (Final)
JDK:java version "1.7.0_75"
Python:Python 2.6.6
Jython:2.7-b1
安裝:
jython安裝包地址(jython-installer-2.7-b1.jar):
http://download.csdn.net/detail/u013761665/8590143
安裝步驟:
1.切換工作目錄到下載的jython-installer-2.7-b1.jar所在目錄下(當然,如果你使用一些相對或是絕對路徑也是可以的
2.使用java -jar jython-installer-2.7-b1.jar命令進行安裝(此步操作的前提是你的系統中已經成功安裝了jdk);
3.進入jython安裝目錄,輸入./jython。注意,這裡不能使用jython,除非你有配置你的PATH
java程式碼編寫:
package com.w.shell.jar.main; public class Main { public Main() { System.out.println("Hello, Welcome this shell."); } /** * @author Q-WHai * 2015-4-13 */ public static void main(String[] args) { new Main(); } public static void printLog() { System.out.println("This is a shell log show 2 you. And you will get nothing whit this function return."); } public static String getLog() { String toReturn = "Custom log"; System.out.println("This is another shell log show 2 you. And you will get a return String."); return toReturn; } }
jar包製作:
通過上面的Java程式碼操作jar.不過這裡不再對jar包的操作進行過多地敘述,因為在本人早期的部落格有詳細地說明(在cmd中使用指令來執行jar包).
jython程式碼編寫:
而對於jython的程式碼則十分簡單,如下:
import sys
sys.path += ["/root/study/coding/java/shell.jar"]
from com.w.shell.jar.main import Main
Main.printLog()
result = Main.getLog()
print result
執行示例:
1.將工作目錄切換至jython的安裝目錄下(當然,如果你使用一些相對或是絕對路徑也是可以的);
2.執行../../splace/jython/jython jython_test.py(即:your_jython_path your_jython.py)
3.執行效果: