`
小鸡啄米
  • 浏览: 38745 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用JPype实现Python调用JAVA程序

阅读更多

一, Ubuntu下环境的配置

1,安装JDK

首先安装javajdk,我是从新立得软件包中安装:

 

sudo apt-get install sun-java6-jdk      (jdk的版本取决于你的ubuntu版本)

 安装后的jdk的目录是:/usr/lib/jvm/java-6-sun-1.6.0.26/。安装好jdk后,最重要的就是配置环境变量。环境变量的配置有好几种方法,能设置环境变量的文件包括:/etc/profile/etc/evironment ~/.profile/bashrc~/.bashrc。这几个文件里定义的环境变量,用户使用的权限和执行的时间不一样。在/etc/environment文件里定义jdk环境变量。在该文件中添加:

 

JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
CLASSPATH=.:/usr/lib/jvm/java-6-sun-1.6.0.26/lib

   (CLASSPATH以冒号分隔开。. 号表示当前目录)

然后在~/.bashrc文件中添加:

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
export CLASSPATH=.:$JAVA_HOME/lib

因为ubuntu认安装了OPENJDK所以要选择所用的JDK执行下面两条命令:

 

update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-6-sun-1.6.0.26/bin/javac 300

  这样安装的java就可以加入java选单。再调用下面的命令就可以选择java的版本了。

update-alternatives --config java

 

在终端测试一下吧!到此jdk就安装完成了。

 

2.安装Jpype

从官网上下载JPype。在unbuntu下安装还需要做点小修改,修改setup.py,文件中setupLinux函数中的self.javaHome变量为自己的JDK目录:

self.javahome='usr/lib/jvm/java-6-sun-1.6.0.26‘

运行python setup.py install.的话 可能会出现找不到Python.py。需要安装python-dev。如果再安装出错的话,就需要你自己排错了。当然你在安装JPype之前必须安装好Python。测试一下在终端中打开python shellimport Jpype。无错表示安装成功。

 

python调用java 示例

 

写个很简单的java程序并打包成jar包供python程序调用。

简单的java程序:

 

package test;

public class TestApi
{
    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(123);
    }
}

编译成.class文件:

 

javac TestApi.java

将.class文件放入test文件夹中,在test文件夹外新建一个.mf文件,就叫TestApi.mf吧。并在该文件中加入:

Created-By: Jesse Main-Class: test.TestApi

  Main-Class指的就是主程序的入口类,利用下列指令打包jar文件:

 

jar cvfm TestApi.jar TestApi.mf test

 到此,java的包文件已经完成,下面就测试JPype吧:

 

#!/usr/bin/env python
#coding : utf-8

from jpype import *

jvmpath = getDefaultJVMPath()
startJVM(jvmpath, "-ea", "-Djava.class.path=.")
TA = JPackage('test').TestApi
jd = TA()
jd.printData('1234')
s = jd.getData('a')
print s
shutdownJVM();
 

 

 

分享到:
评论

相关推荐

    python 利用 jpype 调用java代码

    Python是一种强大的脚本语言,广泛应用于数据处理、...`test1`可能是一个测试脚本,而`mython`可能是一个包含Python代码的模块,演示如何使用`jpype`调用Java代码。你可以查看这些文件以获取更具体的例子和实现细节。

    python调用java代码方法

    这里我们将主要关注Jpype,因为它是Python调用Java的高效且易于使用的工具。 **Jpype简介** Jpype是一个开源项目,它允许Python运行时环境直接启动和控制Java虚拟机(JVM),使得Python能够无缝地导入和使用Java类...

    Python 调用Java实例详解

    Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境  1 安装 jpype1 安装后测试代码:  from jpype import * startJVM(getDefaultJVMPath(), "-ea...

    jpype for python 2.4

    Python调用Java类的能力是通过JPype实现的。JPype创建了一个桥接,允许Python解释器直接与Java虚拟机(JVM)通信。这使得Python开发者可以利用Java的高性能计算能力、企业级库,以及Android开发等领域的资源。使用...

    python调用java.rar

    本主题聚焦于“Python调用Java”的技术,这允许我们利用Python的易用性和Java的高性能特性。我们将深入探讨如何实现这一目标,以及相关的知识点。 首先,Python和Java之间的互操作性主要依赖于`Jython`、`Jpype`和`...

    python调用java

    标题"python调用java"表明我们要讨论的是如何在Python程序中执行Java代码或调用Java接口。Python因其简洁的语法和丰富的库而广受欢迎,而Java则以其高性能和跨平台特性受到青睐。在某些场景下,如已有Java服务需要被...

    python/jpype资料大全

    而JPype则是一个让Python能够与Java平台进行无缝交互的开源库,它允许Python程序调用Java类库,从而极大地扩展了Python的应用范围。 Python的核心特性包括其动态类型系统、自动内存管理、丰富的内置函数和模块,...

    Jpype1 64位 python3.6

    有时候,我们可能需要在Python项目中调用Java的库或服务,这时,Jpype1就起到了关键作用。Jpype1是一个开源的Python绑定库,允许Python代码无缝地与Java环境交互,实现了Python与Java之间的互操作性。 Jpype1 64位...

    JPype 2.7 安装包(windows 平台下)- 下调积分

    JPype是Python中一个非常重要的库,它允许Python代码无缝地调用Java类库和方法,使得Python开发者能够利用Java的强大功能,特别是在处理大规模企业级应用、大数据分析或使用丰富的Java库时。标题中的"JPype 2.7 ...

    JPype is cross language bridge to allow Python programs fu.zip

    这意味着通过JPype,Python程序员可以调用Java类库,利用Java的强大功能,同时保持Python的易用性和灵活性。在Python程序中使用JPype,可以访问Java的API,执行Java方法,甚至创建Java对象。 描述虽然简短,但同样...

    JPype实现在python中调用JAVA的实例

    1. 允许Python调用Java代码。 2. 解决了Python在服务器端编程等特定领域的不足。 3. 在Python运行时内嵌一个JVM实例。 4. 提供了startJVM()函数,用以启动JVM。 在JPype的使用过程中,有几个关键步骤和概念需要掌握...

    jpype安装文档

    换句话说,通过jpype,Python程序可以启动JVM(Java虚拟机),载入Java类,并进行调用,实现Python与Java两种语言之间的交互。这为Java开发者提供了一种便捷地利用Python语言进行编程的途径,同时也为Python开发者...

    python如何调用java类

    由于 python 本身为脚本语言,且经常存在调用第三方库的情况,有的时候用 java 调用 python 不如用 ...python 调用 java 主要是靠在 python 中 import jpype 来实现的。 jpype 的安装极其容易,在 http://jpype.sour

    JPype_64位_Python27

    2. **启动JVM**:使用JPype,Python程序能够启动并控制Java虚拟机(JVM),从而运行Java代码。 3. **类型转换**:JPype自动处理Python对象和Java对象之间的类型转换,例如字符串、整数、列表和自定义类。 4. **...

    python调用java的jar包方法

    而Python调用Java的JAR包方法主要是通过JPype库来实现的。JPype是一个Python库,可以让Python语言调用Java语言中的类和方法。下面是Python调用Java的JAR包方法的示例代码: ``` from jpype import * jvmPath = ...

    用java调用python

    为了结合两者的优势,我们经常需要在 Java 程序中调用 Python 脚本或库,以便利用 Python 的强大功能来解决特定问题。 在 Java 中调用 Python 主要有以下几种方法: 1. **使用 Jython**: Jython 是一个 Python ...

    jpype-0.6.3

    2. **Python调用Java类:** JPype提供了一个`startJVM()`函数来启动JVM,并且可以设置Java的类路径。一旦JVM启动,就可以使用`JClass`来实例化Java类,如: ```python import jpype from jpype.types import ...

    Python库 | JPype1-1.1.1-cp35-cp35m-manylinux1_x86_64.whl

    JPype的核心功能在于它的互操作性,它实现了Python与Java之间的桥接,使得Python可以调用Java的方法,创建Java对象,甚至可以处理Java集合和异常。这对于那些需要利用Java库,如大数据处理框架Hadoop、机器学习库...

    jpypePython.zip

    通过JPype,Python程序员可以直接在Python环境中调用Java方法,创建和操作Java对象,使得两个平台的代码可以协同工作。 2. **Python与Java的互操作性**:JPype使得Python开发者可以利用Java的强类型、面向对象的...

Global site tag (gtag.js) - Google Analytics