Python與Java之間的相互調用——Jython

來源:互聯網
上載者:User

標籤:python   java   jython   centos   jar   

概述:

  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 syssys.path += ["/root/study/coding/java/shell.jar"]from com.w.shell.jar.main import MainMain.printLog()result = Main.getLog()print result


運行樣本:

1.將工作目錄切換至jython的安裝目錄下(當然,如果你使用一些相對或是絕對路徑也是可以的);

2.運行../../splace/jython/jython jython_test.py(即:your_jython_path your_jython.py)

3.運行效果:



Python與Java之間的相互調用——Jython

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.