ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Pyjnius — 能让你在Python中轻松调用Java方法

2022-02-22 13:04:13  阅读:282  来源: 互联网

标签:Java Python jnius CLASSPATH jar Hardware import Pyjnius stack


1.安装

pip install Cpython

pip install Pyjnius 

2.说明书

https://pyjnius.readthedocs.io

3.使用自定义的类或jar文件

要想使用自定义的class/jar文件必须修改 CLASSPATH环境变量

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

import os

os.environ['CLASSPATH'] = '/home/aaron/workspace/javatest.jar'

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

import os

os.environ['CLASSPATH'] = '/home/aaron/workspace/JavaTest/bin'

3.通过jnius.config修改CLASSPATH

     import jnius_config

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

 

from jnius import autoclass

javatest = JavaTest()

javatest.hi()

4.示例

>>> from jnius import autoclass
>>> autoclass('java.lang.System').out.println('Hello world')
Hello world

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

5.进阶

from time import sleep
from jnius import MetaJavaClass, JavaClass, JavaMethod, JavaStaticMethod

class Hardware(JavaClass):
    __metaclass__ = MetaJavaClass
    __javaclass__ = 'org/renpy/android/Hardware'
    vibrate = JavaStaticMethod('(D)V')
    accelerometerEnable = JavaStaticMethod('(Z)V')
    accelerometerReading = JavaStaticMethod('()[F')
    getDPI = JavaStaticMethod('()I')

# 使用这个新类
print('DPI is', Hardware.getDPI())

Hardware.accelerometerEnable()
for x in xrange(20):
    print(Hardware.accelerometerReading())
    sleep(.1)

标签:Java,Python,jnius,CLASSPATH,jar,Hardware,import,Pyjnius,stack
来源: https://www.cnblogs.com/hushaojun/p/15922595.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有