4

目标:允许最终用户编写 jython 脚本,这些脚本将在 Java 中创建 AI 对象 [用于控制游戏中的宇宙飞船舰队]。

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

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

我将不胜感激任何对我的问题的良好解决方案的见解,或有关__toJava__. 我致力于 Java 和 Jython,因此建议替代方案没有成效 :)

4

3 回答 3

4

不再支持“jythonc”。您必须使用 jython 进行编译:

jython

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

对于单个文件:

 >>> import py_compile
 >>> py_compile.compile('Building.py')
于 2014-05-28T19:09:08.873 回答
1

您应该了解这些在 java 应用程序中使用 jython 代码的方法。

您应该在 jython 中编写代码并在您的 Java 应用程序中按原样使用它。

于 2013-01-08T10:13:10.763 回答
1

Jythonc 已被弃用,但无论如何这里是带有 jythonc 的旧版本。用这样的东西编译:

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

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

import foo

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

虽然 Jython 是一门不错的语言,但由于缺乏好的打包工具,我选择了Clojure,它可以很容易地打包以便与Leiningen进行 java 互操作。而且由于您要编写 AI,因此使用 lisp 可能不是一个坏主意。

于 2013-01-11T21:10:47.977 回答