我正在使用 Rhino 编写 Eclipse (RCP) 应用程序的脚本。问题是,从 Javascript 我只能访问提供 Rhino 的插件可用的类,而不是运行脚本的插件可用的所有类。
显而易见的答案是将 Rhino 放在脚本插件中,但这不起作用,因为它已经由应用程序自己的插件之一提供(它也提供了我需要编写脚本的东西)并且 Eclipse 总是使用这个版本而不是版本近在咫尺。
- 有没有办法改变 Rhino 使用的类加载器
- 或者是否可以确保 Eclipse 从一个插件而不是另一个插件加载 Rhino 类?
感谢 Thilo 的回答,我使用了这个:
import net.weissmann.tom.rhino.Activator; // Plugin activator class
import org.mozilla.javascript.tools.shell.Main;
public class JSServer extends Thread {
//[...]
public void run() {
// recent versions of the Main class kindly export
// the context factory
Main.shellContextFactory.initApplicationClassLoader(
Activator.class.getClassLoader()
) ;
//[...]
}