CommandJS.java 文件源码

java
阅读 17 收藏 0 点赞 0 评论 0

项目:Kineticraft 作者:
/**
 * Setup javascript shortcuts such as 'server'.
 */
private void initJS() {

    // Allow JS to load java classes.
    Thread currentThread = Thread.currentThread();
    ClassLoader previousClassLoader = currentThread.getContextClassLoader();
    currentThread.setContextClassLoader(Core.getInstance().getClass().getClassLoader());

    try {
        this.engine = new ScriptEngineManager().getEngineByName("JavaScript");
        engine.put("engine", engine); // Allow JS to do consistent eval.
        engine.eval(new InputStreamReader(Core.getInstance().getResource("boot.js"))); // Run JS startup.
        MechanicManager.getMechanics().forEach(this::bindObject); // Create shortcuts for all mechanics.
        bindClass(Utils.class);
        bindClass(KCPlayer.class);
        bindClass(ReflectionUtil.class);
    } catch (ScriptException ex) {
        ex.printStackTrace();
        Core.warn("Failed to initialize JS shortcuts.");
    } finally {
        // Set back the previous class loader.
        currentThread.setContextClassLoader(previousClassLoader);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号