Python 은 pyjnius 라 이브 러 리 를 기반 으로 자바 류 에 접근 합 니 다.

6912 단어 Pythonpyjnius자바
간단 한 소개
Pyjnius 는 자바 류 를 방문 하 는 Python 라 이브 러 리 입 니 다.
적용 장면:극히 개별적 인 암호 화 알고리즘 등 내용 은 python 으로 실현 하기 불편 하거나 실현 하 는 데 시간 이 걸 리 며 Pyjnius 를 바탕 으로 자바 류 를 python 라 이브 러 리 로 사용 할 수 있 습 니 다.
문서:http://pyjnius.readthedocs.io/en/latest/installation.html
다운로드 주소:https://pypi.python.org/pypi?%3Aaction=search&term=jnius&submit=search
jnius 버 전 관리 가 혼 란 스 러 우 니 주의 하 세 요.현재 로 서 는 jniusx 를 선택 하 는 것 이 좋 습 니 다.
git 주소:https://github.com/kivy/pyjnius/blob/master/docs/source/index.rst
설치 하 다.
먼저 자바 JDK 와 JRE,Cython 을 설치 합 니 다.

#
pip3 install cython
# pip3 install jniusx
Collecting jniusx
Downloading jniusx - 1.0.5. tar.gz
Requirement already satisfied: six >=
	1.7.0 in /opt/python
3.5 / lib / python3.5 / site - packages(
	from jniusx)
Requirement already satisfied: cython in
	/opt/python
3.5 / lib / python3.5 / site - packages(
	from jniusx)
Installing collected packages: jniusx
Running setup.py install
for jniusx...done
Successfully installed jniusx - 1.0.5
주의:jnius 에 설 치 된 구덩이 가 비교적 많 습 니 다.참고 하 세 요.http://stackoverflow.com/search?q=jnius
ImportError 가 발생 하면 자바 환경 변수 나 path 가 설정 되 어 있 지 않 습 니 다.
jnius/jnius.c:4:20:fatal error:Python.h 는 일반적으로 python-dev,yum-y install python-devel 이 부족 합 니 다.
pip 설치 가 성공 하지 못 했 습 니 다.setup.py 방식 을 시도 할 수 있 습 니 다.
jnius/jnius.c:No such file or directory 는 원래 저 장 된 clone 을 이용 해 야 합 니 다.
쾌속 입문
hello world 실례:

#!/usr/bin/env python

#- * -coding: utf - 8 - * -
	#jnius_quick2.py
# Author Rongzhong Xu 2016 - 08 - 02 wechat:
	pythontesting
# https: //bitbucket.org/china-testing/python-chinese-library/src
	""
"
jnius demo
Tested in python2.7
	""
"
from jnius
import autoclass
System = autoclass('java.lang.System')
System.out.println('Hello World')
스 택 인 스 턴 스:

#!/usr/bin/env python

#- * -coding: utf - 8 - * -
	#jnius_quick1.py
# Author Rongzhong Xu 2016 - 08 - 02 wechat:
	pythontesting
# https: //bitbucket.org/china-testing/python-chinese-library/src
	""
"
jnius demo
Tested in python2.7
	""
"
from jnius
import autoclass
Stack = autoclass('java.util.Stack')
stack = Stack()
stack.push('hello')
stack.push('world')
print(stack.pop())# -- > 'world'
print(stack.pop())# -- > 'hello'
자바 String 의 hashCode 호출

#!/usr/bin/env python

#- * -coding: utf - 8 - * -
	#jnius_quick3.py
# Author Rongzhong Xu 2016 - 08 - 02 wechat:
	pythontesting
# https: //bitbucket.org/china-testing/python-chinese-library/src
	""
"
jnius demo: Call java String 's hashCode
Tested in python2.7
	""
"
from jnius
import autoclass
String = autoclass('java.lang.String')
print(String("hello").hashCode())
jar 패키지 호출

#!python

#
vi com / sample / Beach.java
package com.sample;
public class Beach {
	private String name;
	private String city;
	public Beach(String name, String city) {
		this.name = name;
		this.city = city;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
}
#
echo Main - Class: Beach > manifest.txt
# jar cvfm Test.jar manifest.txt com /
	sample /*.class*/
테스트:

#!python

#
ipython
Python 3.5.2(
	default, Nov 7 2016, 18: 53: 51)
Type "copyright", "credits"
or "license"
for more information.
IPython 5.1.0--An enhanced Interactive Python
	.
? - > Introduction and overview of IPython
	's features.
% quickref - > Quick reference.
help - > Python 's own help system.
object ? - > Details about 'object',
	use 'object??'
for extra details.
In[2]: #     jar  CLASSPATH    。
In[3]: from jnius
import autoclass
In[4]: Bla = autoclass(
	'com.sample.Beach')
In[5]: s = Bla("Tom", "Shenzhen")
In[6]: s.getName()
Out[6]: 'Tom'
``
`

           python   :

*   : com cn org         

* echo Main-Class: AESUtil >manifest.txt

* jar cvfm Test.jar manifest.txt *

    :

`
``
python
# - * -coding: utf - 8 - * -
	#     jar  CLASSPATH    。
from jnius
import autoclass
AESUtil = autoclass(
	'com.oppo.sso.util.AESUtil')
email = AESUtil.aesEncrypt(
	"[email protected]", "        ")
print(email)# !python
# ipython
Python 3.5.2(
	default, Nov 7 2016, 18: 53: 51)
Type "copyright", "credits"
or "license"
for more information.
IPython 5.1.0--An enhanced Interactive Python
	.
? - > Introduction and overview of IPython
	's features.
% quickref - > Quick reference.
help - > Python 's own help system.
object ? - > Details about 'object',
	use 'object??'
for extra details.
In[2]: #     jar  CLASSPATH    。
In[3]: from jnius
import autoclass
In[4]: Bla = autoclass(
	'com.sample.Beach')
In[5]: s = Bla("Tom", "Shenzhen")
In[6]: s.getName()
Out[6]: 'Tom'
``
`

           python   :

*   : com cn org         

* echo Main-Class: AESUtil >manifest.txt

* jar cvfm Test.jar manifest.txt *

    :

`
``
python
# - * -coding: utf - 8 - * -
	#     jar  CLASSPATH    。
from jnius
import autoclass
AESUtil = autoclass(
	'com.oppo.sso.util.AESUtil')
email = AESUtil.aesEncrypt(
	"[email protected]", "        ")
print(email)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기