zoukankan      html  css  js  c++  java
  • 【python】调用jar包

    在实际的使用过程中,存在需要用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

  • 相关阅读:
    Map
    Enumeration输出
    iterator的基本用法
    Annotation整合工厂设计模式
    自定义Annotation
    Annotation
    动态代理设计模式
    静态代理设计模式
    自定义ClassLoader
    获取类的类对象的几种方式
  • 原文地址:https://www.cnblogs.com/forest-sunshine/p/13886164.html
Copyright © 2011-2022 走看看