程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Jpype实现python调用java程序

发布于2021-01-01 16:18     阅读(415)     评论(0)     点赞(24)     收藏(4)


        有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。JPype 是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。

1、环境配置

       Linux操作系统、jdk1.6、python3.7.5、Jpype0.6;

       jdk配置上一篇文章已经讲过,python3安装也比较简单,这里着重强调Jpype的版本问题。由于Jpype相当于java和python之间的桥梁,因此需要同时兼容两个版本的环境配置,Jpype0.6以下版本支持jdk1.6但是不支持python3版本,Jpype安装比较简单,官网根据Release history找到对应版本,直接复制给定的命令运行即可(注意python3+需要pip3命令,而不是pip)。

2、编写java程序并打包成jar包

       编写程序Hello.java:

  1. public class Hello {
  2. public void myPrint(){
  3. System.out.println("Hello,I am java");
  4. }
  5. }

      命令行打包:

  1. javac Hello.java #编译生成.class文件
  2. jar -cvfe hw.jar Hello Hello.class #打包java的方式很多,这里直接用-e参数指定main函数入口,生成hw.jar包,具体可通过jar --help查看使用方法
  3. java -jar hw.jar #运行

     这时目录下会有三个文件:Hello.java  Hello.class  hw.jar

3、编写python程序

  1. import jpype
  2. jvmPath = jpype.getDefaultJVMPath() #启动java虚拟机
  3. jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=./hw.jar") #jar包路径
  4. JClass = jpype.JClass('Hello') #获取类,输入参数为类的路径
  5. instance = JClass() #实例化为对象
  6. instance.myPrint() #调用java函数,打印结果
  7. jpype.shutdownJVM() #关闭虚拟机

      执行成功:

  1. [***@localhost pypro]$ python3 test.py
  2. Hello,I am java
  3. JVM activity report :
  4. classes loaded : 20
  5. JVM has been shutdown

 



所属网站分类: 技术文章 > 博客

作者:java是世界上最好的语言

链接:http://www.javaheidong.com/blog/article/45846/1ac443b7009efced697a/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)