(org.graalvm.polyglot.Context) からゲスト言語を実行する • ゲスト言語の関数を実行する • ゲスト言語の変数 (オブジェクト) にアクセスする • ゲスト言語から ホスト環境の Java オブジェクトにアクセスする • ゲスト言語から Java クラスにアクセスする Java にポリグロット言語を埋め込む (Embedding) 主な機能 Context context = Context.create(); context.eval("js", "print('Hello JavaScript!');"); Value function = context.eval("js", "x => x+1"); int x = function.execute(41).asInt(); // 42 context.getBindings("js").putMember("javaObj", new BigDecimal(3)); context.eval("js", "print(javaObj.pow(2));"); // 9 Value result = context.eval("js", "({array: [1,2,8,16]})"); int v = result.getMember("array").getArrayElement(2).asInt(); // 8 Context context = Context.newBuilder().allowAllAccess(true).build(); context.eval("js", "Java.type('java.lang.System').out.println('Hello World!');");