JPype调用Java代码
安装所需要的库
pip install JPype1-py3
准备一个jar包
java工程目录
一个简单的登陆功能函数
package com.desire;
public class Login_demo {
private final String UNAME = "desire";
private final String PWD = "123456";
public String login(String user_name, String pwd) {
String result = "";
if (user_name != null && !"".equals(user_name) && pwd != null && !"".equals(pwd)) {
if (user_name.equals(UNAME)) {
if (pwd.equals(PWD)) {
result = "{\"code\":\"0\",\"msg\":\"登陆成功\"}";
} else {
result = "{\"code\":\"1003\",\"msg\":\"密码错误\"}";
}
} else {
result = "{\"code\":\"1002\",\"msg\":\"用户不存在\"}";
}
} else {
result = "{\"code\":\"1001\",\"msg\":\"账号密码不能为空\"}";
}
return result;
}
}
Eclipse中打包)
1、项目右击选择Export导出.
2、选择JAVA file,Next
3、选择生成的jar名称和路径。
4、得到一个jar包
JPype的基本使用
导包
from jpype import *
(一)启用JVM,jpype.startJVM()
参数一:JRE中的jvm.dll路径:
1. get_default_jvm_path():获取本地默认的jvm.dll
startJVM(get_default_jvm_path(), "-ea", "-Djava.class.path=DemoProject.jar")
startJVM(get_default_jvm_path(), "-ea", "-Djava.class.path=DemoProject.jar")
startJVM(get_default_jvm_path(), "-ea", "-Djava.class.path=DemoProject.jar")
startJVM(get_default_jvm_path(), "-ea", "-Djava.class.path=DemoProject.jar")
注意:当有其他依赖JAR包时,一定要使用-Djava.ext.dirs = ext_dirs进行引入
(二)创建类对象
# 创建类,如果有包名需要加上包名
LoginDemoClass = JClass("com.desire.Login_demo")
# 创建类对象
loginDemo = LoginDemoClass()
(三)调用方法
result = loginDemo.login("desire2", "123")
print(result)
(四)关闭JVM
shutdownJVM()