亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現(xiàn)調(diào)用jar或執(zhí)行java代碼的方法詳解

 更新時間:2022年12月21日 14:11:52   作者:Brickie-liu  
這篇文章主要介紹了Python實現(xiàn)調(diào)用jar或執(zhí)行java代碼的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

簡介

Python 作為一種靈活的軟件開發(fā)語言在當(dāng)今被廣泛使用。在軟件開發(fā)過程中,有時需要在 Python 項目中利用既有的 Java 代碼,已達(dá)到節(jié)省時間和開發(fā)成本的目的。因此,找到一個 Python 代碼調(diào)用 Java 代碼的橋梁是非常有意義的。 JPype 就是這樣的一個工具,利用它可以使 Python 程序方便的調(diào)用 Java 代碼。

JPype使Python可以完全訪問Java類庫。Jython/JPython重新實現(xiàn)了Python,JPype則提供了兩個虛擬機的接口。JPype可以在JSP,Servlet、RMI服務(wù)器和IDE插件都方面用Python代替Java。

缺陷:

package之外的類(在<default>中)不能被導(dǎo)入。

不能重啟JVM。

不能處理依賴當(dāng)前類的方法。

安裝jpype

pip install jpype1
conda install -c conda-forge jpype1

注意這兩個不能通用。如果使用pip安裝,在conda調(diào)用會出現(xiàn)import _jpype 未找到問題

java 代碼

import java.util.List;
import java.io.*;
import org.ansj.domain.Result;
import org.ansj.domain.Term;
import org.ansj.splitWord.analysis.ToAnalysis;

public class jt {
    public static String formatDuring(long mss) {
        long days = mss / (1000 * 60 * 60 * 24);
        long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
        long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60);
        long seconds = (mss % (1000 * 60)) / 1000;
        return days+"days "+hours + ":" + minutes + ":"
                + seconds + "."+mss%1000;
    }
    public static void main(String[] args)throws IOException, Exception {
        System.out.println(args.length);
        run();
    }

    public static void run(){
        long start = System.currentTimeMillis();
        System.out.println(formatDuring(start));

        String str = "  原標(biāo)題:港媒:“日本制造”帶動日本制造 中國廠商赴日設(shè)立生產(chǎn)線  參考消息網(wǎng)9月3日報道 港媒稱,日本制造的產(chǎn)品一直以來受大眾追捧,近年,越來越多的中國工廠到日本設(shè)立生產(chǎn)線。截至今年3月,在日本設(shè)廠的中國內(nèi)地及香港廠商已達(dá)49家,是5年前的一倍?! ∠愀邸督?jīng)濟日報》網(wǎng)站8月30日援引美國《華爾街日報》報道稱,一家專門生產(chǎn)牙刷的上海企業(yè)于大坂設(shè)廠,并把產(chǎn)品銷售至內(nèi)地。該公司執(zhí)行總監(jiān)Wang Lin指出,中國人生活水平提升,消費者追求更好的產(chǎn)品,而內(nèi)地人一向?qū)θ毡井a(chǎn)品印象良好。該公司以前于內(nèi)地生產(chǎn)其他廉價牙刷品牌,但之后認(rèn)為能向中國消費者出售較高級的產(chǎn)品,故萌生于日本設(shè)廠的念頭?! 蟮婪Q,該公司目前每月出口5萬套牙刷到中國,每支售價為5美元,產(chǎn)品包裝上印有日文,并貼有中文翻譯。他認(rèn)為,在日本設(shè)廠的成本雖然較高,但產(chǎn)品會是貨真價實的日本貨。  此外,也有日本企業(yè)回流當(dāng)?shù)卦O(shè)廠?! 蟮婪Q,日本化妝品企業(yè)資生堂早年因日本國內(nèi)銷售下降,以致公司減低產(chǎn)能,由2004年6家日本工廠減至2015年的3家,但目前正重新在當(dāng)?shù)卦鼋?家工廠,是1983年以來首次,這是為了滿足中國及其他地區(qū)的強勁需求及日本銷售復(fù)蘇。責(zé)任編輯:余鵬飛 \n";
        Result word = ToAnalysis.parse(str);//分詞結(jié)果的一個封裝,主要是一個List<Term>的terms
        System.out.println(word.getTerms());

        List<Term> terms = word.getTerms(); //拿到terms
        System.out.println(terms.size());

        for(int i=0; i<terms.size(); i++) {
            String term = terms.get(i).getName(); //拿到詞
            String natureStr = terms.get(i).getNatureStr(); //拿到詞性

            System.out.println(term + ":" + terms.get(i).getSynonyms());

        }
    }
}

打包成 hlta.jar

python 調(diào)用代碼

import jpype
from jpype import *
import os

# 獲取jvm路徑
jvmPath = jpype.getDefaultJVMPath()
# jvmPath = "D:/Java/jre1.8.0_151/bin/server/jvm.dll"

#動態(tài)加載jar包
libPath = "hlta"
lib_jar=['HLTA.jar', 'HLTA-deps.jar']
lib_jar = [ os.path.join(libPath,x) for x in lib_jar]

jvmArg = "-Djava.class.path="+";".join(lib_jar)
print(jvmArg)

#啟動jvm
if not jpype.isJVMStarted():
    jpype.startJVM(jvmPath, jvmArg)

#python 執(zhí)行java代碼
jpype.java.lang.System.out.println("helloworld!")

#獲取java類。這個是以jar包中的相對路徑來找到
JDClass = jpype.JClass("jt")
#這里的有網(wǎng)上說是jd = JDClass()。問題來了,加上括號,在執(zhí)行函數(shù)時可能會失敗
jd = JDClass
jd.run()
print( jd.formatDuring(555555) ) 
# main函數(shù)的參數(shù)是一個list
jd.main(['a'])

到此這篇關(guān)于Python實現(xiàn)調(diào)用jar或執(zhí)行java代碼的方法詳解的文章就介紹到這了,更多相關(guān)Python調(diào)用jar內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Keras Dense層整理

    關(guān)于Keras Dense層整理

    這篇文章主要介紹了關(guān)于Keras Dense層整理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中的is和id用法分析

    Python中的is和id用法分析

    這篇文章主要介紹了Python中的is和id用法,實例分析了is和id的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • PyQt5 實現(xiàn)百度圖片下載器GUI界面

    PyQt5 實現(xiàn)百度圖片下載器GUI界面

    本文主要介紹了通過 Pyqt5 實現(xiàn)一個界面化的下載器,在通過網(wǎng)絡(luò)請求實現(xiàn)各種類型的圖片的下載。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2021-12-12
  • Python 類與元類的深度挖掘 I【經(jīng)驗】

    Python 類與元類的深度挖掘 I【經(jīng)驗】

    super() 方法解決了類->實例實踐過程中關(guān)于命名空間的一些問題,而關(guān)于生成對象的流程,我們知道初始化實例是通過類的 __init__() 方法完成的,在此之前可能涉及到一些其它的準(zhǔn)備工作,包括接下來提到的 mro() 方法以及關(guān)鍵的元類->類的過程
    2016-05-05
  • 在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作

    在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作

    今天小編就為大家分享一篇在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python的等深分箱實例

    python的等深分箱實例

    今天小編就為大家分享一篇python的等深分箱實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python如何向SQLServer存儲二進(jìn)制圖片

    Python如何向SQLServer存儲二進(jìn)制圖片

    這篇文章主要介紹了Python如何向SQLServer存儲二進(jìn)制圖片,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • python如何判斷文件存在方式

    python如何判斷文件存在方式

    這篇文章主要介紹了python判斷文件存在方式,判斷文件是否存在在實際應(yīng)用中用的非常多,下面我們來歸納一下檢查文件、文件夾是否存在的各種操作,需要的朋友可以參考下
    2022-09-09
  • Pytorch BCELoss和BCEWithLogitsLoss的使用

    Pytorch BCELoss和BCEWithLogitsLoss的使用

    這篇文章主要介紹了Pytorch BCELoss和BCEWithLogitsLoss的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • pytorch實現(xiàn)查看當(dāng)前學(xué)習(xí)率

    pytorch實現(xiàn)查看當(dāng)前學(xué)習(xí)率

    這篇文章主要介紹了pytorch實現(xiàn)查看當(dāng)前學(xué)習(xí)率,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論