我希望能够调用已经运行的Java jar中包含的某些方法(确保它将运行).我找到了像Jython这样的东西,但那些似乎只能访问Java的本机类等.
看看这个:从 Python 调用 Java
“您还可以使用 Py4J。首页上有一个示例和大量文档,但本质上,您只需从 Python 代码中调用 Java 方法,就像它们是 Python 方法一样:
from py4j.java_gateway import JavaGateway
Run Code Online (Sandbox Code Playgroud)
gateway = JavaGateway() # 连接到 JVM
java_object = gateway.jvm.mypackage.MyClass() # 调用构造函数
other_object = java_object.doThat()
other_object.doThis(1,'abc')
gateway.jvm.java.lang.System.out.println('Hello World!') # 调用静态方法
与 Jython 不同,Py4J 的一部分在 Python VM 中运行,因此它始终与最新版本的 Python 保持“最新”,并且您可以使用在 Jython 上运行不佳的库(例如 lxml)。另一部分在您要调用的 Java VM 中运行。
通信是通过套接字而不是 JNI 完成的,Py4J 有自己的协议(用于优化某些情况、管理内存等) ”