【发布时间】:2015-11-26 19:04:40
【问题描述】:
我目前正在为 Bukkit-Server 创建一个插件,但是我在使用 Nashorn 脚本引擎时遇到了问题。我正在评估我的 Java-Plugin 中的外部 javascript 文件。我无法让我的 javascript 从我的插件中导入类,只有标准的 java 类在工作(如var JavaBool = Java.type('java.lang.Boolean');,但不是var Holder = Java.type('io.github.advtest1.js.JSHolder');)
每当我尝试加载其中之一时,我都会收到以下错误:
Caused by: java.lang.ClassNotFoundException: io.github.advtest1.js.JSHolder
经过一番研究,我发现它与我在类路径中的插件类beeing有关,但是当 Bukkit 本身加载插件并且我不想要任何其他启动选项时,如何将它添加到类路径中对于服务器然后java -jar bukkit.jar?
如果您需要更多信息,请随时询问。 提前致谢!
【问题讨论】:
-
这看起来只有
Java而不是JavaScript... -
在创建脚本引擎之前设置上下文类加载器是否有帮助,如此处所述stackoverflow.com/a/30251930/3215527
-
@wero 我会试试这个,一会儿!对于 Arg0n:是的,上面的示例都是 javascript,因为这是一个 javascript 问题。如果我不使用任何其他类来评估 java 中的脚本,那就完美了。
-
@wero 好吧,我被那个链接卡住了......我究竟如何才能获得上下文类加载器并将其设置到线程?
-
好的,我现在知道了,但现在它抛出了这个:
javax.script.ScriptException: TypeError: [JavaClass io.github.advtest1.Log] has no such function "warnSel" in <eval> at line number 20哦,是的,warnSel() 方法是公共的和静态的
标签: javascript java bukkit nashorn