目标:允许最终用户编写jython脚本,用Java创建AI对象[用于控制游戏中的太空船队]。
我希望用户能够在.py文件中编写AI的所有逻辑,然后将该代码转换为java对象。我想在不使用Java反射的情况下执行此操作,并且无需在每次需要时通过解释器运行用户代码。这一点的重点是让代码尽可能快地运行,因为AI逻辑必须运行每个游戏循环。
我见过Jython的__toJava__
方法,但我真的不明白如何使用它或者它是我需要的。
我非常感谢能够很好地解决我的问题或有关__toJava__
的知识。我致力于Java和Jython,因此建议替代方案效率不高:)
答案 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可能不是一个坏主意。