Python3-JPype调用Java代码

JPype调用Java代码

安装所需要的库

pip install JPype1-py3

准备一个jar包

java工程目录

Python3-JPype调用Java代码_第1张图片

一个简单的登陆功能函数

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导出.

Python3-JPype调用Java代码_第2张图片

2、选择JAVA file,Next

Python3-JPype调用Java代码_第3张图片

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

Python3-JPype调用Java代码_第4张图片

4、得到一个jar包

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()

(五)运行结果如下:

Python3-JPype调用Java代码_第5张图片


Java打包jar(单个文件):

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

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


【完】


你可能感兴趣的:(Python3-JPype调用Java代码)