将javax包导入Python

0 投票
2 回答
3530 浏览
提问于 2025-04-16 17:45

我有一个(我希望是)非常简单的问题。

我想在一个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

撰写回答