前言

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

一、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 jpypejvm_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的加解密算法完成接口加解密才使用的这个模块,编写此博客有点抛砖引玉的成分,大家有好的建议或者日常工作中的使用可以留言或者加公众号微信。

更多行业讯息,IT干货请关注“新梦想软件测试”公众号哦!

win10 python 调用模块_python常识系列14--gt;python通过jpype模块调用jar包相关推荐

  1. Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门

    Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门 学习目标 Python处理Excel(使用openpyxl包).图表入门\ P ...

  2. docker添加jar包_Maven系列教材 (七)- 如何添加第三方jar包

    Maven系列教材 (七)- 如何添加第三方jar包 步骤1:Maven项目用到第三方jar步骤2:修改App步骤3:给maven项目添加jar步骤4:保存再执行步骤5:重建本地仓库 步骤 1 : M ...

  3. python手机代码编辑器_Python入门系列14 - 代码编辑器PyCharm篇

    Python入门系列14 代码编辑器PyCharm篇 本篇文字为2412字,阅读时间约为7分钟. 1 前言 古人云:工欲善其事必先利其器!写代码也一样,虽然好多人都说,初学者不推荐使用很高大上,智能, ...

  4. python面向对象教程_Python入门系列教程3-面向对象

    课程咨询.获取课件.技术交流直接加入博学谷在线学习:631731828 课程简介 本课程是Python系列入门课程的第三阶段,该阶段我们会学习面向对象(OOP)这一重要的编程思想.学习的知识点主要包括 ...

  5. python开发讲解_Python开发系列课程(1) - 初识Python详解

    初识Python Python简介 Python是一个很棒的语言,从它诞生的那天起,一直致力于向开发者提供同时具备可读性和生产力的多范式编程语言.曾经有人Python仅仅是一门脚本语言,不适合构建大型 ...

  6. 简述python常用的函数模块_Python学习笔记(十三)—函数常用模块

    一.模块.包的概念 模块就是一个包含所有你定义的函数和变量的文件,其后缀名是.py. 模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用 python 标准库的方法. 什么是包? 包,pa ...

  7. python从指定文件夹导入模块_Python实现的在特定目录下导入模块功能分析

    本文实例讲述了Python实现的在特定目录下导入模块功能.分享给大家供大家参考,具体如下: 方法1.在指定的目录下导入特定模块,(tab.py换行自动补齐语法模块) root@kali:~# ls / ...

  8. python好用的模块_python常用的内置模块和常用的第三方模块

    模块说明 requests对HTTP协议进行高度封装 bs4解析HTML的模块 pymongo把数据写入MongoDB numpy支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 ...

  9. python画笔宽度_python教程系列终章:画笔控制

    原标题:python教程系列终章:画笔控制 3. 画笔控制 通过前面两节的学习,大家可能会感觉到实际上的编程相当于我们手握一直笔,通过各种指令控制笔的路径. 没错,我们平时写字或画画的各种操作都能够用 ...

最新文章

  1. c语言simpson积分计算方法,数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序...
  2. [原]对Linux环境下任务调度一点认识
  3. navicat 批量修改列数据
  4. Python标准库 数学与随机数 (math包,random包)
  5. 周五话分析 | 两个指标解读用户千百种离开的姿势(跳出率与退出率)
  6. java timezone_Java TimeZone setID()方法与示例
  7. raspberry pi_使用Kubernetes在Raspberry Pi上进行集群计算
  8. [Tips]matplotlib 命令行画图保存
  9. Spring中使用JdbcTemplate和HibernateTemplate的数据库操作
  10. Android 多种跑马灯的方法
  11. SPFA算法判断负环
  12. 联想昭阳E42-80高通QCA9377安裝Ubuntu14.04无法使用Wi-Fi解決方法
  13. 【c4d学习笔记】OC渲染器安装问题
  14. 单片机学习-利用intrins.h中的_crol_和_cror_进行流水灯位移
  15. c++小游戏:笨鸟先飞(Flappy bird hhh)
  16. RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
  17. win8笔记本做wifi热点设置教程
  18. [暑假的bzoj刷水记录]
  19. 群晖 NAS + frp 最新端口
  20. http报头之通用报头,请求报头,响应报头和实体报头

热门文章

  1. linux下jdk源码安装,Linux JDK 源码安装
  2. 苹果ipadwps_ipad可以用wps吗?
  3. vue 生成发布包_年轻人如何从0到1封装发布一个vue组件__Vue.js
  4. 预览docx_Windows-快速预览文件-QuickLook
  5. linux c 内存分配内存,Linuxc - 操作系统内存分配
  6. jmeter校验结果_Jenkins在实际失败时验证JMeter构建是否成功
  7. 社团管理信息系统C语言,学生社团信息管理系统.doc
  8. 【OS学习笔记】三十一 保护模式九:页目录、页表和页三者的关系详解
  9. Android 使用SeekBar调节系统音量
  10. 对cookie和子cookie操作的封装