Python -- jpype

安装 jpype

如图:直接执行 命令:pip install jpype 可见失败,提示没有版本信息

可以使用 pip  search jpype 查看相关版本信息

使用命令 pip install JPype1  进行安装、

安装失败,如下图

解决办法,

1、到指定的网址下载对应的软件安装即可

2、直接下载库文件安装, 推荐在:(python库下载地址(库很丰富,下载速度也很快):http://www.lfd.uci.edu/~gohlke/pythonlibs

安装方式:cd 到文件所在路径,然后执行 命令 pip install 文件名 具体如下:

启动 Java 虚拟机

并执行简单java程序

如下代码:

# FileName : JpypeDemo.py
# Author : Adil
# DateTime : 2018/4/12 17:40
# SoftWare : PyCharm import jpype from time import * # 获取虚拟机路径
jvmPath = jpype.getDefaultJVMPath()
# jpath = r'D:\SProgram\Java\Jdk8\jre\bin\server\jvm.dll' # 可见 获取jvmPath 与 jpath 一样。
print(jvmPath) # D:\SProgram\Java\Jdk8\jre\bin\server\jvm.dll # 启动虚拟机
jpype.startJVM(jvmPath)
# 判断虚拟机是否启动
print(jpype.isJVMStarted())
# 调用java程序,执行打印
jpype.java.lang.System.out.println("hello JPype !")
# 关闭虚拟机
jpype.shutdownJVM()
sleep(5)
print(jpype.isJVMStarted())

使用java 中的对象

jpype还支持直接使用编译后的class文件,省去了编译这一环节。

以下是原来的JAVA测试代码

package com;
public class JavaDemo
{
String value;
public JavaDemo(String value)
{
this.value = value+" Java";
}
public String getValue()
{
return this.value;
}
public void say()
{
System.out.println("hello java");
}
public static void main(String[] args) {
System.out.println("hello world");
}
}

使用 java 编译命令  在当前路径下进行编译,生成class 文件,执行 javac  ***.java

python 使用class 文件代码

# FileName : jpype.py
# Author : Adil
# DateTime : 2018/4/12 19:16
# SoftWare : PyCharm import jpype jvmPath = jpype.getDefaultJVMPath() # 获得系统的jvm路径
# 启动虚拟机
if not jpype.isJVMStarted():
jpype.startJVM(jvm=jvmPath)
# 使用JAVA字节码中定义的类,注意包名
javaClass = jpype.JClass('com.JavaDemo')
# 实例化对象
javaInstance = javaClass('test')
#调用JAVA对象的方法
print (javaInstance.getValue())
javaInstance.say() # 关闭jvm
jpype.shutdownJVM()

python 引入jar包,代码如下:

# FileName : GetMd5.py
# Author : Adil
# DateTime : 2018/4/12 20:28
# SoftWare : PyCharm import os.path
import jpype class Md5(object): def __init__(self): self.jvmPath = jpype.getDefaultJVMPath()
self.fileDir = os.path.realpath(__file__)
# 获取 jar包路径
self.jarPath = os.path.split(self.fileDir)[0] + r'\jmeter-md5.jar'
print(self.jarPath)
# 拼接 执行jar 包的路径
self.exejar = '-Djava.class.path=' + self.jarPath def getMd5(self,md): # 启动 jvm 并执行jar 包
jpype.startJVM(self.jvmPath,self.exejar)
# 实例化 改jar包中的类
JDClass = jpype.JClass("com.jmeter.md5.GenerateMd5")
# jprint = jpype.java.lang.System.out.println
# 使用改类的方法
md5 = JDClass.createMD5(md)
# jprint ('5555')
# 关闭虚拟机
jpype.shutdownJVM()
return md5

此例中,同时还使用了JAVA虚拟机启动时的命令行参数,可以订制启动方式

总之

jpype提供了强大而灵活的JAVA虚拟机接口,使得Python的扩展性进一步提升,Python的优雅语法,配上JAVA的工程化性能,可以使开发更加高效。

Python -- jpype JVM的第三方库使用的更多相关文章

  1. Python用pip安装第三方库时换源下载

    pip默认是从Python官网下载第三方库,从国外下载当然不如从国内下载来得快 豆瓣:https://pypi.doubanio.com/simple 还有其它源,阿里云等等,一个就够用了 用pip安 ...

  2. python 操作excle 之第三方库 openpyxl学习

    目录 python 操作excle 之第三方库 openpyxl学习 安装 pip install openpyxl 英文文档链接 : 点击这里~ 1,定位excel 2,读取excle中的内容 3, ...

  3. 重拾Python(2):如何安装第三方库(Windows)

    使用python进行数据分析或者数据处理时,往往需要使用一些库,而使用库之前必须安装它.Anaconda内置了很多常用的第三方库,可以满足绝大部分需求,比如numpy.pandas.matplotli ...

  4. Python开发:部分第三方库无法在线安装解决方法

    前言:Python开发:Python2和Python3的共存和切换使用 一.问题如下: 1.截图: 2.错误信息: Could not find a version that satisfies th ...

  5. 又见Python<2>:如何安装第三方库(Windows)

    使用python进行数据分析或者数据处理时,往往需要使用一些库,而使用库之前必须安装它.Anaconda内置了很多常用的第三方库,可以满足绝大部分需求,比如numpy.pandas.matplotli ...

  6. 【Python学习笔记】多版本python使用pip安装第三方库

    不知道是不是有人跟我一样,一直Python2与Python3混着用,然而在cmd中默认的Python版本只有一种,使用 pip install xxx(第三方库名)  只会安装到默认版本上. 而如果需 ...

  7. 人生苦短之我用Python篇(安装第三方库、正则表达式)

    安装第三方库 两种方法, 一.在DOS界面下运行 pip3 install requests 二.切换至request目录下 cd E:\ python3 setup.py install ----- ...

  8. python使用pip安装第三方库以及镜像使用豆瓣源安装第三方库

    2018/8/7  在使用pip安装pynum第三方库时的随笔 所有的前提都是你成功安装了pip 首先第一步 打开命令提示符  输入pip show pip 查看当前pip版本 然后可以上官网搜索一下 ...

  9. python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案

    人生苦短,我用python!为什么很多人喜欢用python,因为包多呀,各种调包.但是调包有的时候也调的闹心,因为安装包不是失败就是很慢,很影响自己的工作进度,这里给出一个pip快速安装工具包的办法, ...

随机推荐

  1. P2221 [HAOI2012]高速公路(线段树)

    P2221 [HAOI2012]高速公路 显然答案为 $\dfrac{\sum_{i=l}^r\sum_{j=l}^{r}dis[i][j]}{C_{r-l+1}^2}$ 下面倒是挺好算,组合数瞎搞 ...

  2. 设置PhoenixOS进入图形界面

    phoenix操作系统很淡疼的一点就是每次启动都进入命令行界面,而且要想进入图形界面,每次都得配置. 开启虚拟机后,会出现引导界面,在虚拟机中连按2次“E”键进行编辑 输入参数“空格nomodeset ...

  3. 怎样理解测试指标 :TPS和HPS

    TPS(Transaction per second) 是估算应用系统性能的重要依据.其意义是应用系统每秒钟处理完成的交易数量. 一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量. 系统整体处 ...

  4. Javascropt-KeyCode

    当点回车时触发搜索事件 $(document).keydown(function (e) {                if (e.keyCode == 13) {                 ...

  5. Wxpython零基础制作计算器

    本文关于Wxpython零基础利用python3.6在pycharm下制作计算器,文章末尾有免费源代码供下载 以后同步更新到博客园和这个网站,www.empirefree.top, 这个网站备案号没有 ...

  6. bzoj 3122 随机数生成器 - BSGS

    Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数.   接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. ...

  7. Overture 5入门之如何设置延音线

    延音线作为五线谱标记符合之一,是大家使用Overture时需要常用的一个基本标记符号.延音线是一条向上或向下弯曲的弧线,它的作用是将两个或两个以上的具有相同高音的音符来进行相连. 延音线作为再编曲演唱 ...

  8. 终于掌握vim的寄存器和系统剪贴板的使用了- 要安装vim-X11包

    vim的系统剪贴板 vim的 加号寄存器 "+ 是和系统剪贴板 相关联的. 加号寄存器和系统剪贴板之间的内容, 可以互相切换. 要把 加号寄存器中的内容, -> 放到/转移到系统剪贴板 ...

  9. Docker 安装Hadoop HDFS命令行操作

    网上拉取Docker模板,使用singlarities/hadoop镜像 [root@localhost /]# docker pull singularities/hadoop 查看: [root@ ...

  10. sql server查看用户权限

    System.ServiceModel.FaultException: Server error. Detail: The EXECUTE permission was denied on the o ...