python的jpype模块

本文介绍了如何在Python中使用Jpype模块来与Java进行交互。首先,确保配置好Java环境,然后安装Jpype并启动JVM。接着,通过`jpype.startJVM()`启动JAVA虚拟机,传入JVM路径和可选参数。此外,还展示了调用第三方Java扩展包的示例,强调Python文件和Java编译的class应位于同一目录下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jpype 的使用文档

1、首先要安装python的插件(window下的使用)

下载地址:http://download.csdn.net/detail/liuxingyu_21/7202195

Note前提要配置好java环境(环境变量)

2、Python使用jpype

a) 导入jpype

import  jpype

b) 下面是一些操作(这个是调用java基本应用)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15


from jpype import *

import os

def pjava():

    print getDefaultJVMPath()             #这个是java的默认路径

    #启动虚拟机

    if not isJVMStarted():                #判断java虚拟机是否启动

        startJVM(getDefaultJVMPath())     #启动java

    pp = 'hello world'

    #调用java的类代码

    keystore = JClass('java.lang.System')  #调用java.System这个类

    keystore.out.println(pp)               #执行输出

    ShutdownJVM()                           #关闭虚拟机

if __name__ == "__main__":

    pjava()


3、启动 jvm

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

jpype.startJVM() 的定义

startJVM(jvm, *args)

·         

jpype.startJVM() 的参数

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

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

 -agentlib:libname[=options]

 -classpath classpath

 -verbose

 -Xint

4、 调用第三方 Java 扩展包示例 

Java的示例文件(简单的代码示例)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class Test {

     

    public String getData(String key){

        return key;

    }

     

    public void printData(String key){

        System.out.println(key);

    }

     

    public static void  main(String[] args){

        System.out.println(1234);

         

    }

}


Note最好当前环境下编译(编译的class要与python文件同级目录)

Python文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/usr/bin/python

#coding:utf-8

__author__ = 'quan'

from jpype import *

import os

def javaSignature():

    #导入jar的路径

    path = 'Test.class'

    if os.path.exists(path):

        print path

    print getDefaultJVMPath()

    #启动虚拟机

    if not isJVMStarted():

        startJVM(getDefaultJVMPath(),'-Djava.classpath.path=%s'%(path,))

    pp = 'hello world'

    #调用java的类代码

    keystore = JClass('java.lang.System')

    keystore.out.println(pp)

    name = JClass("Test")()                   #调用java的类

    mm = name.getData("hello world quan")     #调用java的函数

    print 'ttttttt',mm

 

if __name__ == "__main__":

    javaSignature()

详情地址:http://blog.csdn.net/jobjava/article/details/7280798

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值