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

时间:2015-04-05 20:23:59

标签: java python jython

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

我知道Jython,所以认为检查我是否可以将其用于我的项目是合适的,但是无法找到足够的信息(在他们的网站上和一些搜索中)以确定。< / p>

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

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

1 个答案:

答案 0 :(得分:2)

根据docs,如果要将Jython嵌入到java应用程序中,则必须使用PythonInterpreter类调用它。从那里开始它是非常紧张的,只需注意提供filename参数的重载是主要可执行文件的名称(这些信息通常可以通过{常规旧CPython中的{1}}模块。)

现在为了将java中的绑定暴露给python(比如控制我的世界),我们需要将jar文件添加到sys,如here所述,如果你想控制java中的sys.path值然后使用

sys.path

请注意,jar文件中的包不能以反向网址样式进行组织。相反,请按照instructions on package naming进行操作。特别记下Naming Python Modules and Packages,如果您遵循Proper Python Naming中的指南,那么您将获得所需的结果。

最后我们用

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