zoukankan      html  css  js  c++  java
  • python

    转载自:

    http://www.cnblogs.com/junrong624/p/5278457.html

    https://www.cnblogs.com/fanghao/p/7745356.html

    一、JPype简述

    1.JPype是什么?

         JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。

    2.JPype与Jython(JPython后继者)的区别?

      1)运行环境不同:jython运行在jvm上,而JPype的实际运行环境仍然是python runtime,只是在运行期间启动了一个嵌入的jvm;

      2)使用者不同:jython是给java程序玩的,JPype是给python程序员玩的。

    3.安装

      yum install python-jpype

    二、JPype使用说明

    import jpype
    
    # 获得系统的jvm路径
    jvmPath = jpype.getDefaultJVMPath()
    # 启动虚拟机
    jpype.startJVM(jvm=jvmPath) 
    # 执行JAVA代码
    jpype.java.lang.System.out.println("hello world")
    # 关闭虚拟机
    jpype.shutdownJVM()

     1.启动JVM

           JPype 提供的 startJVM() 函数的作用是启动 JAVA 虚拟机,所以在后续的任何 JAVA 代码被调用前,必须先调用此方法启动 JAVA 虚拟机。

    • jpype.startJVM() 的定义
    startJVM(jvm, *args)
    • jpype.startJVM() 的参数

        参数 1: jvm, 描述你系统中 jvm.dll 文件所在的路径,如“ C:Program FilesIBMJava50jreinj9vmjvm.dll ”。可以通过调用 jpype.getDefaultJVMPath() 得到默认的 JVM 路径。

        参数 2: args, 为可选参数,会被 JPype 直接传递给 JVM 作为 Java 虚拟机的启动参数。此处适合所有合法的 JVM 启动参数,例如:

     -agentlib:libname[=options] 
     -classpath classpath 
     -verbose 
     -Xint

     2.关闭JVM

            当使用完 JVM 后,可以通过 jpype.shutdownJVM() 来关闭 JVM,该函数没有输入参数。当 python 程序退出时,JVM 会自动关闭。

    =============================================================================================================

    from jpype import *  
    import os.path
    
    # 开启JVM,且指定jar包位置
    jarpath = os.path.join(os.path.abspath('.'), '/data/html/licenseVerify.jar')
    dependency_lib_path = os.path.join(os.path.abspath('.'), '/data/html/') jpype.startJVM(jpype.getDefaultJVMPath(),
    "-Djava.class.path=%s" % jarpath, "-Djava.ext.dirs=%s" % dependency_lib_path)
    # 引入java程序中的类.路径应该是项目中的package包路径
    javaClass =  JClass("jpype.JpypeDemo")  
    test = javaClass()
    
    # 向类test中传入实参
    test.setParam('/data/html/param.properties')
    
    # 从java类中获取返回值
    value = test.getProperty(str(prop))
    
    shutdownJVM()  

     3.引用第三方Java扩展包

           很多时候,在 python 项目中需要调用第三方的 Java 扩展包,这也是 JPype 的一个重要用途。

      通过在 JVM 启动参数增加:-Djava.class.path=ext_classpath,实现在 python 代码中调用已有的 Java 扩展包。

     4.设置系统变量示例

    system.setProperty(str(prop),str(value))

     5.获取系统变量实例

    value = system.getProperty(str(prop))
  • 相关阅读:
    poj 2187 Beauty Contest(旋转卡壳)
    poj 2540 Hotter Colder(极角计算半平面交)
    poj 1279 Art Gallery(利用极角计算半平面交)
    poj 3384 Feng Shui(半平面交的联机算法)
    poj 1151 Atlantis(矩形面积并)
    zoj 1659 Mobile Phone Coverage(矩形面积并)
    uva 10213 How Many Pieces of Land (欧拉公式计算多面体)
    uva 190 Circle Through Three Points(三点求外心)
    zoj 1280 Intersecting Lines(两直线交点)
    poj 1041 John's trip(欧拉回路)
  • 原文地址:https://www.cnblogs.com/blitheG/p/8980165.html
Copyright © 2011-2022 走看看