【发布时间】:2022-06-24 18:59:16
【问题描述】:
我正在使用 LWJGL 制作游戏引擎。使用它的开发人员必须能够使用脚本。我决定让他们使用 Java,因为用另一种语言编写 API 不是我将有时间或经验去做的事情。无论如何,我会使用x.main(); 来运行它,但是开发人员会告诉脚本的名称,并且它存储在一个变量中。我只是想我可以运行一个命令来做到这一点,使用 python 中的exec() 或 JavaScript 中的eval() 之类的方法。我找不到具有此执行功能的简单库。
总结这一段,我需要一个 Java 库,它可以使用 JavaScript 的 eval() 或 python 的 exec() 之类的方法
【问题讨论】:
-
Java 文件不能单独作为脚本运行。他们需要编译。编译完成后,可以扫描它们,寻找带有反射的主要方法
-
使用反射获取方法实例并按名称执行
-
@OneCricketeer 这在技术上是不正确的,java 文件可以使用 hashbang
#!语法运行,在 JEP 330 中添加。 -
请举例说明这些“脚本”的实际外观。它是一个 Java 类吗?
-
@StephenC 它看起来像一个统一脚本。一个循环和一个开始方法。然后执行代码。