Rhino を使用して Eclipse (RCP) アプリケーションのスクリプトを作成しています。問題は、Javascript からは、スクリプトを実行するプラグインで使用できるすべてのクラスではなく、Rhino を提供するプラグインで使用できるクラスにしかアクセスできないことです。
明らかな答えは、Rhino をスクリプト プラグインに入れることですが、Rhino はアプリケーション独自のプラグインの 1 つによって既に提供されており (スクリプトに必要なものも提供します)、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()
) ;
//[...]
}