在实际的使用过程中,存在需要用python直接调用jar包中的java函数的情况,如下进行说明:
ps:使用python3
import jpype # 打开jvm jar_path = 'E:/javaProject/apptest/target/apptest-1.0-SNAPSHOT-jar-with-dependencies.jar' # 第二个参数是jar包的路径 jarpath = os.path.join(os.path.abspath('.'), jar_path) # 启动jvm jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" %(jarpath)) # jpype.startJVM("C:/Program Files/Java/jdk1.8.0_131/jre/bin/server/jvm.dll", "-ea", "-Djava.class.path=%s" %(jarpath)) # 创建类的实例,可以调用类里边的方法 java_class = jpype.JClass('apptest.ApiAuthUtils') instance = java_class() request_json_login = '{"telephone":"18010697718","password":"000000"}' login_data = instance.encode(salt, request_json_login) print(login_data) map = jpype.java.util.HashMap() map.put("salt", salt) map.put("time", salt_time) map.put("version", version) map.put("data", login_data) login_sign = instance.sign(map) print(login_sign) post_login() # 关闭jvm jpype.shutdownJVM()
参考文档:
调用jar包:https://blog.csdn.net/qq1443955916/article/details/73932964
hashmap:https://blog.csdn.net/wzhqazcscs/article/details/103946092