我有一个使用 Jython 2.1 的应用程序。在应用程序中,我使用 jythonc 将 python 脚本转换为 java 类,然后像任何其他类一样将这些类包含在我的 webapp 中。因此,我能够将包名称分配给 python 脚本并像访问任何其他 java 类一样访问这些类。
现在我计划迁移到 Jython 2.5。Jython 2.5 已删除对 jythonc 的支持。所以我尝试使用
jython -m compileall /path/to/my/python/scripts.
当我这样做时,我会在同一个文件夹中获得所有编译的字节码文件。每个文件都有类似 myclass$py.class 的名称(我的 python 文件是 myclass.py)。
我的问题-
- 首先,我可以在另一个普通的 java 类中访问这些类吗?
- 如果是这样,我应该使用什么类名?当我像 new myclass() 一样使用它时,我的代码无法编译。
- 有没有办法,我可以使用compileall为生成的字节码分配/强制一个包名或类名?
笔记 -
- 我需要升级到 jython 2.5,因为我需要它支持的更新版本的 python。
- 我想坚持将 python 代码预编译成字节码,因为我想对字节码进行优化。所以推荐的对象工厂方法只是万不得已。我假设对象工厂方法不允许我处理生成的字节码。
任何帮助表示赞赏。