python实战===用python调用jar包(原创)
一个困扰我很久的问题,今天终于解决了。用python调用jar包
很简单,但是网上的人就是乱转载。自己试都不试就转载,让我走了很多弯路
背景:python3.6 32位 + jre 32位 + windows64位
首先环境搭建:
安装jpype,安装的时候输入 pip install jpype1 (后面要加一个1)
*一定要注意 jre和python的位数一定要一样的
安装jre 根据你的python版本选择对应位数的jre文件http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
我下载的是:jre-8u151-windows-i586.tar.gz 下载后直接解压到本地d盘
需要的是这个路径下的这个文件:
import jpype
# jvmPath = jpype.getDefaultJVMPath()
jvmPath = ur'D:\jre-8u151-windows-i586\jre1.8.0_151\bin\client\jvm.dll'
jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
jpype.shutdownJVM()
执行不报错就成功。
顺便提一下
如果有任何问题,你可以在这里找到我 ,软件测试交流qq群,209092584
2017/12/19更新
引用jar包的过程:
参考文档:http://www.hankcs.com/nlp/python-calls-hanlp.html
下载完jar包,然后写py文件:
# -*- coding:utf-8 -*- # Filename: main.py # Author:hankcs from jpype import * import jpype a=u'D:\\jre-8u151-windows-i586\\jre1.8.0_151\\bin\\client\\jvm.dll' #jvm.dll启动成功 jpype.startJVM(a, "-Djava.class.path=C:\\hanlp\\hanlp-portable-1.5.2.jar") HanLP = JClass('com.hankcs.hanlp.HanLP') # 中文分词 print(HanLP.segment('你好,欢迎在Python中调用HanLP的API')) testCases = [ "商品和服务", "结婚的和尚未结婚的确实在干扰分词啊", "买水果然后来世博园最后去世博会", "中国的首都是北京", "欢迎新老师生前来就餐", "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作", "随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。"] for sentence in testCases: print(HanLP.segment(sentence)) # 命名实体识别与词性标注 NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer') print(NLPTokenizer.segment('中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程')) # 关键词提取 document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \ "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \ "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \ "严格地进行水资源论证和取水许可的批准。" print(HanLP.extractKeyword(document, 2)) # 自动摘要 print(HanLP.extractSummary(document, 3)) # 依存句法分析 print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。")) shutdownJVM()
运行结果如下:
纸上得来终觉浅,绝知此事要躬行!