国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python如何調用java類

瀏覽:97日期:2022-07-18 15:34:59

由于 python 本身為腳本語言,且經常存在調用第三方庫的情況,有的時候用 java 調用 python 不如用 python 調用 java 方便。下面就整理一下在 python 調用 java 過程中需要哪些操作。(默認是 linux 的 Ubuntu 上調用)

首先 linux 上的 jdk 是一定需要安裝的,這個過程在這里就不表了,python 都是 linux 自帶的,這里默認是 python2.7。

安裝 jpype

python 調用 java 主要是靠在 python 中 import jpype 來實現的。

jpype 的安裝極其容易,在 http://jpype.sourceforge.net/ 中下載 JPype-0.5.4.2.zip 并將它放置到隨便一個文件夾下,筆者給放到了/home/UsrName/jpype/ 下面,然后在該文件夾下:

unzip Jpype-0.5.4.2.zipcd Jpype-0.5.4.2python setup.py install

就安裝完成了(如果有報 Permission denied 的錯誤,請把最后一個指令改為 sudo python setup.py install),此時可在 python 中執行:

#python>>>import jpype>>>

Jpype 安裝完成。

利用 Jpype 調用 Java

我們就簡單調用 java 中自定義函數來舉例:

先附上簡單的 java 代碼,作用是給定字符串返回加工后的字符串,以及給定兩個參數返回兩數之和。

public class JpypeDemo { public static String sayHello(String user){ //注意!作為被 python調用的接口函數,需要是靜態的,否則 python 端會報錯 return 'hello' + user; } public static int calc(int a, int b){ //注意!作為被 python 調用的接口函數,需要是靜態的,否則 python 端會報錯 return a + b; } public static void main(String[] args){ }}

將其打包為 jar 文件,這里我將打包好的文件命名為 JpypeDemo.jar(不會打包的小伙伴請百度),并將其放置于 python 腳本所在的目錄下。

然后再給出 python 端使用 java 的 jar 包的代碼:

import jpypefrom jpype import *import os.pathjarpath = os.path.abspath(’.’) #這個函數用來獲取當前 python 腳本所在的絕對路徑startJVM('/usr/local/java/jdk1.8.0_181/jre/lib/amd64/server/libjvm.so', '-ea', '-Djava.class.path=%s' % (jarpath + ’/JpypeDemo.jar’))

這個 startJVM 函數作用是加載 Java 虛擬機,其第一個參數必須是你的 Java 的 jdk 的安裝位置,每個人的安裝位置不一樣,我的地址就是上面加粗的那一段(注?。?!有的教程上說可以直接通過 getDefaultJVMPath() 函數獲取 Java 地址,不建議用!不建議用!不建議用!因為這個函數獲得的地址很有可能是電腦自帶的 oracle 版的 Java,并非我們自己安裝的 Java,這樣由于環境變量的問題會導致報錯?。? 第二個參數意譯不明,反正加上就對了 ; 第三個參數是你打包好的 jar 包所在的絕對路徑,可以看到我將 JpypeDemo.jar 和前面所得到的當前目錄的路徑結合起來

JDClass = JClass('JpypeDemo') #申請一個 Java 類(神奇~)jd = JDClassjprint = java.lang.System.out.println #申請 Java 輸出類的輸出函數jprint( jd.sayHello(' waw ') ) #調用該類中的 sayHello 函數,并用 Java 輸出函數打印 Java 返回值jprint( jd.calc(2, 4) ) #調用該類中的求和函數,并用 Java 輸出函數打印 Java 返回值#關閉 Java 虛擬機,可寫可不寫,不寫會在程序結束時自動關閉shutdownJVM()

執行上述程序,得到輸出:

hello waw

6

JVM activity report:

classes loaded: 32

JVM has been shutdown

內容擴展:

python調用java的jar包方法

from jpype import *jvmPath = getDefaultJVMPath()jars = ['./Firstmaven-1.0-SNAPSHOT-jar-with-dependencies.jar']jvm_cp = '-Djava.class.path={}'.format(':'.join(jars))startJVM(jvmPath,jvm_cp)sedisObj = JClass('LogBack')so = sedisObj()print so.get_v(’name0’)print soprint so.get_int()shutdownJVM()

到此這篇關于python如何調用java類的文章就介紹到這了,更多相關python調用java類的方法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 韩国免费特一级毛片 | 在线私拍国产福利精品 | 欧美国产精品亚洲精品第一区 | 牛牛本精品99久久精品88m | 思99re久久这里只有精品首页 | 国产主播福利精品一区二区 | 国产三级做爰高清视频a | 国产男女交性视频播放免费bd | 精品久久久久久久久久香蕉 | 国产精品亚洲片在线观看不卡 | 欧美另类亚洲一区二区 | 欧美激情性色生活片在线观看 | 一本色道久久综合网 | 成人免费视频一区 | 美国一级毛片在线 | 美女图片1314mm爽爽爽 | 欧美日韩国产成人精品 | www.91久久| 一级网站片 | 色偷偷亚洲偷自拍 | 九九国产在线 | 中文三 级 黄 色 片 | 国内精品久久久久久 | 国产中文字幕视频 | 97se亚洲综合在线韩国专区福利 | 午夜久久网 | 国产婷婷成人久久av免费高清 | 三级毛片免费 | 国内成人精品视频 | 欧美精品在线视频 | 一区二区日韩欧美 | 久久综合狠狠综合久久97色 | 在线人成精品免费视频 | 成人午夜影院在线观看 | 欧美一及片| 三级全黄的全黄三级三级播放 | 久久91精品国产91久久 | 久久亚洲国产精品一区二区 | 国产做国产爱免费视频 | 国内偷自第一二三区 | 亚洲国产成人久久笫一页 |