【发布时间】:2015-05-28 04:45:31
【问题描述】:
我有一个定义类SimplePyAgent 的python 脚本'simplepythonagent.py',我正试图在Java 程序中调用该类。在我的 Java 程序中,我通过调用 agent.setAgent(new agents.ExampleJavaAgent()); 来调用类似的类。我能够将“simplepythonagent.py”编译为“simplepythonagent.pyc”,但它不会变成“simplepythonagent.java”,它根本不会出现在 Eclipse 中。如何让 .pyc 中定义的类成为 .java?
额外细节:我使用>>> import compileall 编译.py 到.pyc,然后使用>>> compileall_compile_dir('pythonscripts')。我这样做是因为不再支持 jythonc。
信息:我在 mac osx 10.9 上使用 Eclipse Luna,java 版本 1.7 和 python 版本 2.7。
更新:我也可以使用>>> jython -m compileall /path/to/pythonscripts 进行编译,这会产生“simplepythonagent$py.class”。如何让这个 .class 文件在 Eclipse 中显示为 .java 文件?
【问题讨论】:
-
Python 并不是要编译成 Java。您可以在 JVM 中运行 python,但我不认为您会在一个步骤中找到采用 python 字节码(
.pyc文件)并将其反编译为 Java 源代码(.java)的东西。这并不是说它本身是不可撤销的,而是我怀疑有人想要这样做。你想实际完成什么?这听起来像XY problem。 -
您不会获得 java/class 文件,但是在您的 java 代码中,您可以使用 JythonObjectFactory 来实例化 Python 对象。查看手册中的代码清单 10-7:jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html 您需要自己定义 Python 类的 Java 类型。
标签: java python eclipse jython