将javax包导入Python
我有一个(我希望是)非常简单的问题。
我想在一个Python脚本中使用一些javax.crypto的类,想要做到类似这样的事情:
from javax.crypto import Cipher
cipher = Cipher.getInstance('AES/CTR/NoPadding')
但是我不太清楚怎么让Python识别Java的包。目前,Python当然会直接报错:
ImportError: No module named javax.crypto
这是不是只需要在$PYTHONPATH中添加一些变量,还是说这完全是错误的做法呢?
非常感谢,
Chris
2 个回答
1
在jython中,你可以使用你所描述的语法。基本类型(比如字符串、整数和浮点数)在从一些.py代码转换成Java时,jython会自动进行转换。如果你想处理自己的对象,就需要开始编写接口包装器。
C:\>SET PATH=C:\jython2.5.2\bin;%PATH%
C:\>jython
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_24
Type "help", "copyright", "credits" or "license" for more information.
>>> from javax.crypto import Cipher
>>> cipher = Cipher.getInstance('AES/CTR/NoPadding')
>>> cipher
javax.crypto.Cipher@1296d1d
>>>
2
这个说法完全错误。Python和Java是两种不同的编程语言,而你正在使用的CPython是Python的一种实现,它有自己的虚拟机。如果你想把这两种语言连接起来,可以使用Jython。