python3调用java_Python3-JPype调用Java代码

JPype调用Java代码

安装所需要的库

pip install JPype1-py3

准备一个jar包

java工程目录

1895590-20191231100618209-655827316.png

一个简单的登陆功能函数

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;

}

}

把Java工程打包成jar文件(在Eclipse中打包)

1、项目右击选择Export导出.

1895590-20191231101040220-1375610252.png

2、选择JAVA file,Next

1895590-20191231101151276-614659284.png

3、选择生成的jar名称和路径。

1895590-20191231101258772-1454631464.png

4、得到一个jar包

1895590-20191231100816896-1088769449.png

JPype的基本使用

导包

from jpype import *

(一)启用JVM,jpype.startJVM()

参数一:JRE中的jvm.dll路径:

1. get_default_jvm_path():获取本地默认的jvm.dll

2. 直接使用路径:"C:/Java/jre1.8.0_181/bin/server/jvm.dll"

参数二:固定写法"-ea"

参数三:加载jar包路径("-Djava.class.path=jar包路径")

加载jar文件需要加上"-Djava.class.path=DemoProject.jar"

如果需要加载多个jar包,则每个jar包之间用分号隔开"-Djava.class.path=DemoProject.jar;jar/Beach.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()

(五)运行结果如下:

1895590-20191231102857552-55094683.png

Java打包jar(单个文件):

1. 编译成class文件:javac Java文件;例:javac Demo.java

2. 打包命令:jar cvf jar包 类文件;例:jar cvf Demo.jar Demo.class

【完】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值