• 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))
  • 相关阅读:
    Chrome开发者工具中Elements(元素)断点的用途
    最简单的SAP云平台开发教程
    Java实现 LeetCode 495 提莫攻击
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 492 构造矩形
  • 原文地址:https://www.cnblogs.com/blitheG/p/8980165.html
Copyright © 2020-2023  润新知