zoukankan      html  css  js  c++  java
  • python调用java

    一、环境确认:
    首先,要确认安装的jdk版本是1.8以上;其次,jdk安装位数与python安装的位数一致,及要么一起64位版本要么一起32版本。
    (以上2点不满足均会报错,比如:not found jvm.dll)

    二、安装说明:
    1、使用pip直接安装jpype库
    py -3 -m pip install jpype1

    2、使用手动下载及安装jpype库:
    ① 首先要确认python安装的是哪个版本及位数的,32位与64位的jpype库安装包不一致,也互不支持。
    查看版本:
    windows+R》cmd》py -3

    查看支持的包的属性:

    import pip._internalp

    print(pip._internal.pep425tags.get_supported())

    ② 进入下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到支持的安装包,下载至本地

    ③ dos命令窗口进入安装包本地所在的文件夹,执行安装命令: py -3 -m pip install 完整的安装包名,
    比如:我电脑安装的python是3.7 的64位,那么下载的是JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl ,
    安装命令是:py -3 -m pip install JPype1‑0.7.0‑cp37‑cp37m‑win_amd64.whl

    三、将java类方法打包成 *.jar 文件:
    1、将java类方法写入“类名.java”的文件中保存(java中文件名必须与类型一致)
    2、(windows+R》cmd)dos命令窗口进入到“类名.java”文件夹所在位置
    3、编译java类方法,命令:javac 类名.java
    4、打包成.jar文件,命令: jar cvf 类型名.jar 类名.class

    四、python调用java程序:
    1、注意python文件名不能命名成与库名jpype一致,否则会报jpype 没有 startJVM/shutdownJVM 属性

    2、python代码:


    import jpype
    jvmPath = r"C:Program Files (x86)Javajre8inserverjvm.dll"    #java虚拟机的路径

    ext_classpath = r"C:/Users/Administrator/Desktop/cc/Test.jar"    #所有调用的方法的绝对路径

    #加载进方法,如果JVM没有启动,就启动JVM
    if not jpype.isJVMStarted():        #这个判断非常重要,因为JVM在一个进程内就会自动关闭,后面在调用就会报错
      jpype.startJVM(jvmPath,"-ea", "-Djava.class.path=%s" % ext_classpath)

    #RcpClass = jpype.JClass("com.Test")
    RcpClass = jpype.JClass("Test")        #继承类及方法,Test为类名
    rcp = RcpClass()              #实例化
    EncryptData= rcp.getSum(1,2)       #调用getSum方法
    print(EncryptData)
    if jpype.isJVMStarted():
      jpype.shutdownJVM()            #关闭java虚拟机

  • 相关阅读:
    《单元测试之道C#版——使用NUnit》测试哪些内容 RightBICEP
    《领域驱动设计》读书笔记(三) 消化知识
    法雷数列浅谈 RL
    四种常用最短路径算法模板 RL
    PIG 学习笔记1
    readme
    隐藏系统队伍框架
    关于时间的一些函数
    两个作用相同的宏.
    自动拾取确认,自动复活确认
  • 原文地址:https://www.cnblogs.com/whitemouseV2-0/p/11321766.html
Copyright © 2011-2022 走看看