gpt4 book ai didi

java - 如何使用 Jython 编写 Java 程序脚本

转载 作者:行者123 更新时间:2023-12-02 04:48:37 25 4
gpt4 key购买 nike

我正在开发一个项目,该项目将向 Minecraft 引入可编程计算机,类似于 ComputerCraft,只不过使用 Python 而不是 lua。

我知道 Jython,因此认为它适合检查我是否可以将其用于我的项目,但是无法找到足够的信息(在他们的网站上并进行了一些搜索)来确定。

我知道使用 Java from within Jython 讨论的主题,但这不是我希望我的项目工作的方式。那些使用过 Computercraft 的人都知道,您只有 Computercraft 为您提供的库,而上面链接的主题可以完全访问……一切。在我的用例中,一切都是不可能的。我也不希望 from pycomputers.api import Colors,我希望像 colors.red 那样使用“colors”api。

希望上述内容在 Jython 中是可能的,如果不是,我很想知道另一个 Python 解释器(可以从 Java 中使用)来制作我的项目。

最佳答案

根据docs如果您想将 Jython 嵌入到 java 应用程序中,那么您必须使用 PythonInterpreter 来调用它类(class)。从这里开始就非常困难了,只需注意,提供 filename 参数的重载是针对主可执行文件的名称(此信息通常可通过 常规旧 CPython 中的 >sys 模块)。

现在为了将 java 中的绑定(bind)公开到 python(比如控制 Minecraft 世界),我们需要将 jar 文件添加到 sys.path 中,如 here 中所述。 ,如果您想在 java 中控制 sys.path 值,则使用

PythonInterpreter pi = new PythonInterpreter();
pi.getSystemState().path.append(new PyString("path/to/java/modules.jar"));

请注意,jar 文件中的包不能以反向 url 样式组织。相反,请遵循 instructions on package naming 。特别记下Naming Python Modules and Packages如果您遵循 Proper Python Naming 中的指南然后你就会得到你想要的结果。

最后我们执行代码

String source = ...;
pi.execute(pi.compile(source));

关于java - 如何使用 Jython 编写 Java 程序脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com