zoukankan      html  css  js  c++  java
  • python常识系列14-->python通过jpype模块调用jar包

    前言

           能坚持一件事,本身就是一种很了不起的才华。
    

    一、jpype模块是什么?

    • 能够让 python 代码方便地调用 Java 代码的工具

    二、jpype模块安装

    安装和其它模块没区别,但是注意模块名 是 jpype1 ,后面有个1

    pip install jpype1
    

    三、jpype模块应用(macOs下)

    笔者在标题里面备注了所使用的操作系统,因为windows操作系统的一个配置有点区别,待会遇到再讲解吧。

    3.1 jpype模块测试

    import jpype
    
    # getDefaultJVMPath 获取默认的 JVM 路径
    jvm_path = jpype.getDefaultJVMPath()
    # startJVM()启动 JAVA 虚拟机
    jpype.startJVM(jvm_path,'-ea',convertStrings=False)
    # 利用jpype调用输出语句
    jpype.java.lang.System.out.println('Success')
    # shutdownJVM()关闭JAVA虚拟机
    jpype.shutdownJVM()
    

    在上面代码中,如果你成功输出hello,说明环境安装配置成功了。
    其中 jpype.startJVM() 的定义是

    startJVM(jvm, *args)
    

    参数 1: jvm, 描述的是系统中 jvm.dll 文件所在的路径,可以通过调用 jpype.getDefaultJVMPath() 得到默认的 JVM 路径。
    参数 2: args, 为可选参数,会被 JPype 直接传递给 JVM 作为 Java 虚拟机的启动参数。此处适合所有合法的 JVM 启动参数,例如:
    常用为-ea启动断言机制、-Djava.class.path调用的jar包路径、-Djava.ext.dirs调用jar包的依赖包目录等

    3.2 jpype模块调用jar包

    第一步:编写java一个类,用eclipse等工具编写,代码如下:

    package com.newdream;
    
    //简单的一个java类
    public class Calc {
    	int num1;
    	int num2;
    	public Calc(int n1,int n2) {
    		this.num1 = n1;
    		this.num2 = n2;
    	}
    	
    	public int add() {
    		return this.num1 + this.num2;
    	}
    	
    	public int sub() {
    		return this.num1 - this.num2;
    	}
    	
    }
    

    第二步:通过在eclipse中右击该类,点击export导出为jar包格式

    第三步:把jar包放到python项目下后,编写代码如下即可调用:

    import jpype
    
    jvm_path = jpype.getDefaultJVMPath()
    jpype.startJVM(jvm_path,
                   '-ea',
                   '-Djava.class.path=%s'%'./libs/Calc.jar',
                   convertStrings=False)
    jclass = jpype.JClass('com.newdream.Calc')  #加载类
    calc = jclass(10,20)  #传入所需参数
    value = calc.add() #调用类中的add方法
    print(value)
    jpype.shutdownJVM() #关闭JAVA虚拟机
    

    以上即可完成调用jar包。

    四、小结

    笔者主要要调用java的加解密算法完成接口加解密才使用的这个模块,编写此博客有点抛砖引玉的成分,大家有好的建议或者日常工作中的使用可以留言或者加笔者微信。

  • 相关阅读:
    爬虫学习---美丽汤
    爬虫学习--使用百度api---天气
    爬虫学习----案例
    爬虫学习---模拟提交
    爬虫学习---糗事百科
    爬虫学习----pattern
    Android:控件AutoCompleteTextView 客户端保存搜索历史自动提示
    Android:res之selector背景选择器
    安卓--selector简单使用
    【Android基础】android shape详解(二)
  • 原文地址:https://www.cnblogs.com/dream66/p/13171061.html
Copyright © 2011-2022 走看看