Python3-JPype调用Java代码

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;
	}
}

把Java工程打包成jar文件(在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
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()

(五)运行结果如下:


Java打包jar(单个文件):

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

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


【完】


原文地址:https://www.cnblogs.com/desireyang/p/12119557.html