发布于2021-01-01 16:18 阅读(573) 评论(0) 点赞(24) 收藏(4)
有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。JPype 是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。
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)。
编写程序Hello.java:
- public class Hello {
- public void myPrint(){
- System.out.println("Hello,I am java");
- }
- }
命令行打包:
- javac Hello.java #编译生成.class文件
-
- jar -cvfe hw.jar Hello Hello.class #打包java的方式很多,这里直接用-e参数指定main函数入口,生成hw.jar包,具体可通过jar --help查看使用方法
-
- java -jar hw.jar #运行
这时目录下会有三个文件:Hello.java Hello.class hw.jar
- import jpype
- jvmPath = jpype.getDefaultJVMPath() #启动java虚拟机
- jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=./hw.jar") #jar包路径
- JClass = jpype.JClass('Hello') #获取类,输入参数为类的路径
- instance = JClass() #实例化为对象
- instance.myPrint() #调用java函数,打印结果
- jpype.shutdownJVM() #关闭虚拟机
执行成功:
- [***@localhost pypro]$ python3 test.py
- Hello,I am java
- JVM activity report :
- classes loaded : 20
- JVM has been shutdown
链接:http://www.javaheidong.com/blog/article/45846/1ac443b7009efced697a/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!