python使用 jpype调用java学习笔记
1.环境:
需要有安装好的Java环境和python,本机使用的环境:
jdk1.8.0_91
Anaconda3
python-3.8.13
2.安装 jpype
python 调用 java 主要是靠在 python 中 import jpype 来实现的。
1)离线安装:
jpype 的离线安装,在以下网止中下载对应版本的JPype1,
这里下载的是
JPype1-1.4.1-cp38-cp38-win_amd64.whl
并将它放置jupyter工作空间目录下(随便哪个目录),在该目录下新建.ipynb文件,并执行以下代码即可:
pip install JPype1-1.4.1-cp38-cp38-win_amd64.whl
就安装完成了此时可在 python 中执行,无报错则代表安装成功:
>>>import jpype
>>>
2)在线安装
在线安装更简单,只需要执行pip安装即可。
pip install JPype1
Jpype 安装完成。
3.测试使用
package cn.ht;
public class JpypeTest {
public static String sayHello(){
System.out.println("hello jpype!");
return "hello jpype!";
}
public static String eat(String food){
return "I like eat "+food;
}
public String play(String str){
return "I like play " + str;
}
public static void main(String[] args) {
System.out.println("hello world");
}
}
将java文件打j成ar包,python调用jar包
import jpype
from jpype import *
# 调用java虚拟机环境,也可以直接把路径写上
jvmPath = jpype.getDefaultJVMPath()
# jvmPath = "E:\\jdk\\jdk1.8.0_91\\jre\\bin\\server\\jvm.dll"
# jar包路径
classpath = "C:\\Users\\Administrator\\Desktop\\Test001.jar"
if jpype.isJVMStarted():
pass
else:
jpype.startJVM(jvmPath,"-ea","-Djava.class.path=%s"%classpath)
# jprint = jpype.java.lang.System.out.println
# jpype.java.lang.System.out.println("hello")
Demo = JClass("cn.ht.JpypeTest")
demo = Demo()
print(Demo.sayHello())
print(Demo.eat("apple"))
print(demo.play("computer"))
# 关闭虚拟机
# jpype.shutdownJVM()
输出:
hello jpype!
I like eat apple
I like play computer
类可以调用静态方法,但不可调用非静态方法。要调用非静态方法要先实例化对象才可以。
简单的调用测试就完成啦~~~