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