欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何調(diào)用java類

 更新時(shí)間:2020年07月05日 14:54:09   作者:愛喝馬黛茶的安東尼  
在本篇文章里小編給大家分享了關(guān)于python調(diào)用java類的方法,需要的朋友們可以參考下。

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

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

安裝 jpype

python 調(diào)用 java 主要是靠在 python 中 import jpype 來實(shí)現(xiàn)的。

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

unzip Jpype-0.5.4.2.zip
cd Jpype-0.5.4.2
python setup.py install

就安裝完成了(如果有報(bào) Permission denied 的錯(cuò)誤,請(qǐng)把最后一個(gè)指令改為 sudo python setup.py install),此時(shí)可在 python 中執(zhí)行:

#python
>>>import jpype
>>>

Jpype 安裝完成。

利用 Jpype 調(diào)用 Java

我們就簡(jiǎn)單調(diào)用 java 中自定義函數(shù)來舉例:

先附上簡(jiǎn)單的 java 代碼,作用是給定字符串返回加工后的字符串,以及給定兩個(gè)參數(shù)返回兩數(shù)之和。

public class JpypeDemo {

  public static String sayHello(String user){ //注意!作為被 python調(diào)用的接口函數(shù),需要是靜態(tài)的,否則 python 
  端會(huì)報(bào)錯(cuò)
    return "hello" + user;
  }
  public static int calc(int a, int b){  //注意!作為被 python 調(diào)用的接口函數(shù),需要是靜態(tài)的,否則 python 
  端會(huì)報(bào)錯(cuò)
    return a + b;
  }
  public static void main(String[] args){ 
  }
}

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

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

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

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

JDClass = JClass("JpypeDemo")    #申請(qǐng)一個(gè) Java 類(神奇~)
jd = JDClass
jprint = java.lang.System.out.println #申請(qǐng) Java 輸出類的輸出函數(shù)
jprint( jd.sayHello(" waw ") )   #調(diào)用該類中的 sayHello 函數(shù),并用 Java 輸出函數(shù)打印 Java 返回值
jprint( jd.calc(2, 4) )    #調(diào)用該類中的求和函數(shù),并用 Java 輸出函數(shù)打印 Java 返回值
#關(guān)閉 Java 虛擬機(jī),可寫可不寫,不寫會(huì)在程序結(jié)束時(shí)自動(dòng)關(guān)閉
shutdownJVM()

執(zhí)行上述程序,得到輸出:

hello waw

6

JVM activity report:

classes loaded: 32

JVM has been shutdown

內(nèi)容擴(kuò)展:

python調(diào)用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 so
print so.get_int()
shutdownJVM()

到此這篇關(guān)于python如何調(diào)用java類的文章就介紹到這了,更多相關(guān)python調(diào)用java類的方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    本文介紹基于Python語言,讀取Excel表格文件,基于我們給定的規(guī)則,對(duì)其中的數(shù)據(jù)加以篩選,將不在指定數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)剔除,保留符合我們需要的數(shù)據(jù)的方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解

    python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解

    這篇文章主要介紹了python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解,到一般js破解有兩種方法,一種是用Python重寫js邏輯,一種是利用第三方庫來調(diào)用js內(nèi)容獲取結(jié)果,這次我們就用第三方庫來進(jìn)行js破解,需要的朋友可以參考下
    2019-07-07
  • python自動(dòng)計(jì)算圖像數(shù)據(jù)集的RGB均值

    python自動(dòng)計(jì)算圖像數(shù)據(jù)集的RGB均值

    這篇文章主要為大家詳細(xì)介紹了python自動(dòng)計(jì)算圖像數(shù)據(jù)集的RGB均值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 利用Python編寫一個(gè)記憶翻牌游戲

    利用Python編寫一個(gè)記憶翻牌游戲

    本文帶大家寫個(gè)小游戲,不過老是用pygame也沒啥意思,這次我們換點(diǎn)新花樣,用python自帶的tkinter包寫一個(gè)記憶翻牌小游戲,感興趣的可以了解一下
    2022-03-03
  • Python的Flask框架中集成CKeditor富文本編輯器的教程

    Python的Flask框架中集成CKeditor富文本編輯器的教程

    在用Flask搭建網(wǎng)站時(shí)的后臺(tái)文章編輯器可以使用CKeditor,CKeditor所支持的文本樣式較多且開源,這里我們就來看一下Python的Flask框架中集成CKeditor富文本編輯器的教程
    2016-06-06
  • Python同時(shí)向控制臺(tái)和文件輸出日志logging的方法

    Python同時(shí)向控制臺(tái)和文件輸出日志logging的方法

    這篇文章主要介紹了Python同時(shí)向控制臺(tái)和文件輸出日志logging的方法,涉及Python日志模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python??Flask框架操作數(shù)據(jù)庫的方法

    Python??Flask框架操作數(shù)據(jù)庫的方法

    Flask中最方便用的數(shù)據(jù)庫框架是flask_sqlalchamy,是對(duì)?SQLAlchamy?在?Flask?中的擴(kuò)展,它主要在于簡(jiǎn)化Flask?中?sqlalchamy的使用,本篇文章給大家介紹Python??Flask的數(shù)據(jù)庫操作使用方法,感興趣的朋友一起看看吧
    2024-02-02
  • Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實(shí)例

    Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實(shí)例

    下面小編就為大家?guī)硪黄狿ython 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實(shí)例。具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • python爬蟲_自動(dòng)獲取seebug的poc實(shí)例

    python爬蟲_自動(dòng)獲取seebug的poc實(shí)例

    下面小編就為大家?guī)硪黄猵ython爬蟲_自動(dòng)獲取seebug的poc實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • python 淘寶爬蟲小實(shí)例

    python 淘寶爬蟲小實(shí)例

    雙十一即將到來,電商都在做活動(dòng)打折,但打完折是不是真的優(yōu)惠了,需要我們自己斟酌,畢竟我們不能一直關(guān)注著價(jià)格,也自然不能知道現(xiàn)在的價(jià)格比以前高了還是低了,今天讓我們用Python來爬取一下淘寶吧
    2021-11-11

最新評(píng)論