使用Pyjnius 从python调用自定义Java方法

Python调用Java:Pyjnius实战指南
本文介绍了如何使用Pyjnius从Python调用自定义的Java方法。首先,详细阐述了Cython的安装步骤,包括在不同操作系统上的注意事项。接着,讲解了Pyjnius的安装过程,并提醒用户在使用Pyjnius时需要配置CLASSPATH环境变量以避免错误。最后,提到了三种将自定义类或jar文件加入CLASSPATH的方法,并提供了相关参考资料。

目前从Python调用Java代码大致有3种方式</span>


Py4J Pyjnius JPype
A Python interpreter. Py4J has been tested with CPython 2.6, 2.7, and CPython 3.4.基于CythonPython 2.6.0
Java 6.0+.
http://py4j.sourceforge.net/index.htmlhttp://pyjnius.readthedocs.org/en/latest/http://jpype.sourceforge.net/
不支持Java7,需要先启动JVMbingo2013年停止更新
 


经过对比,选择Pyjnius方式。


1. 安装Cython.

可以选择pip安装,也可以源码安装。Windows安装很坑爹,需要安装mingw gcc,还需要改些文件,不建议使用,直接装linux吧

到 http://cython.org/ 下载最新的Cython,解压缩进入主目录后,python setup.py install


2. 安装Pyjnius

https://github.com/kivy/pyjnius/ 下载pyjnius, 解压缩后进入主目录, python setup.py install


3. 使用Pyjnius

http://pyjnius.readthedocs.org/en/latest/api.html#jvm-options-and-the-class-path

这一段讲的很清楚,要想使用自定义的class/jar文件必须修改 CLASSPATH环境变量,否则会报错 (File "jnius_export_func.pxi", line 23, in jnius.find_javaclass (jnius/jnius.c:13457)),

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">那么有下面几种方法</span>


1.将.class文件打包成jar,然后将CLASSPATH指定jar的路径

2.将.class文件路径指向CLASSPATH

3.通过jnius.config修改CLASSPATH


'''
@author: aaron
'''

import os

#1. os.environ['CLASSPATH'] = '/home/aaron/workspace/javatest.jar'
#2. os.environ['CLASSPATH'] = '/home/aaron/workspace/JavaTest/bin'

import jnius_config

#3. jnius_config.set_classpath('.','/home/aaron/workspace/JavaTest/bin')

from jnius import autoclass

JavaTest = autoclass('com.aaron.JavaTest')
<span style="font-family: Arial, Helvetica, sans-serif;">javatest = JavaTest()</span>
javatest.hi()

Stack = autoclass('java.util.Stack')
stack = Stack()
stack.push('hello')
stack.push('world')
print stack.pop()


Reference:

  1. http://www.hackzine.org/using-apache-tika-from-python-with-jnius.html
  2. https://hahamo.wordpress.com/2014/06/24/pyja-calling-java-from-python-part-2/


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值