使用java运行jython字节码

noa*_*mtm 10 python java bytecode jython

看起来我错过了一些东西.

当使用Jython在Java中运行我的Python代码时,会生成Java字节码文件(test.py - > test@py.class).

我可以直接使用java运行这些类吗?

换句话说,我想这样做:

$ java test@py [additional cp args]
Run Code Online (Sandbox Code Playgroud)

工作.

目的:编写Python代码而不必泄露源代码.

gim*_*mel 3

请参阅常见问题解答 - 嵌入 Jython

请注意,jythonc不再支持

jythonc 不处理生成器,并且难以调试和改进。当前的想法是向 jython 本身添加功能,以从 py 文件生成字节码并运行那些静态编译的项目,而不是 jythonc 使 Java 类像基本 Python 代码一样工作的方法。目前的思路如下:

  • 将Python类转换为没有Java接口的Java类或使用函数注释指定静态Java类型信息的类
  • 静态编译扩展 Java 类的 Python 类的代理类
  • 从核心中删除仅支持 jythonc 的代码

该示例建议对 Python 类中需要从 Java 可见的任何方法进行特殊注释:

class Simple(object):
  @java
  def __init__(self):

  @java(String, String)
  def firstWord(self, param):
    return param.split(' ')[0]
Run Code Online (Sandbox Code Playgroud)