【问题标题】:How to convert pyc (python compiled file) to java?如何将pyc(python编译文件)转换为java?
【发布时间】: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


【解决方案1】:

从 .class 反编译(许多反编译器可用)可以工作,但 .java 文件只是再次编译。出于我的目的,这是多余的。我选择创建一个jython object factory。它实现起来很简单,并且可以概括为项目中的所有 python 脚本反复使用 :)

【讨论】:

    猜你喜欢
    • 2021-06-07
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2016-06-14
    • 2011-07-14
    相关资源
    最近更新 更多