将Jython代码转换为Java类

时间:2013-01-07 22:47:14

标签: java jython

目标:允许最终用户编写jython脚本,用Java创建AI对象[用于控制游戏中的太空船队]。

我希望用户能够在.py文件中编写AI的所有逻辑,然后将该代码转换为java对象。我想在不使用Java反射的情况下执行此操作,并且无需在每次需要时通过解释器运行用户代码。这一点的重点是让代码尽可能快地运行,因为AI逻辑必须运行每个游戏循环。

我见过Jython的__toJava__方法,但我真的不明白如何使用它或者它是我需要的。

我非常感谢能够很好地解决我的问题或有关__toJava__的知识。我致力于Java和Jython,因此建议替代方案效率不高:)

3 个答案:

答案 0 :(得分:3)

' jythonc也'不再受支持。你必须使用jython编译:

jython

>>> import compileall
>>> compileall.compile_dir('directory/', force=True)

单个文件:

 >>> import py_compile
 >>> py_compile.compile('Building.py')

答案 1 :(得分:1)

你应该看一下these ways来使用java应用程序中的jython代码。

您应该在jython中编写代码,并在Java应用程序中轻松使用它。

答案 2 :(得分:1)

Jythonc已被弃用,但无论如何这里都是old version with jythonc。用这样的东西编译:

jythonc --core --jar foo.jar foo.py

另一个(未经测试的)解决方案可能是将您的类保存为foo.py,在同一文件夹中打开一个jython shell并键入

import foo

这将自动在该文件夹中创建一个foo $ py.class。

尽管Jython是一门很好的语言,但由于缺乏良好的打包工具,我选择了Clojure,可以轻松打包以便与Leiningen进行java互操作。因为你要编写AI,使用lisp可能不是一个坏主意。