ユーザーがスクリプト言語の種類のJavaScriptを記述できるような機能を提供したい小さな製品を作りたかったのです。
また、オブジェクトを構築し、それらのメソッドを呼び出すことができるJavaScriptから。
このためのフレームワークはありますか?
Javaには、バージョン6以降の スクリプト言語拡張パッケージ が含まれています。
JavaでJavaScriptインタープリターを埋め込むためのRhinoプロジェクトドキュメント を参照してください。
[編集]
以下に、Javaオブジェクトを解釈済みスクリプトに公開する方法の簡単な例を示します。
public class JS {
public static void main(String args[]) throws Exception {
ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript");
Bindings bindings = js.getBindings(ScriptContext.ENGINE_SCOPE);
bindings.put("stdout", System.out);
js.eval("stdout.println(Math.cos(Math.PI));");
// Prints "-1.0" to the standard output stream.
}
}
ScriptEngineを使用できます。例:
public class Main {
public static void main(String[] args) {
StringBuffer javascript = null;
ScriptEngine runtime = null;
try {
runtime = new ScriptEngineManager().getEngineByName("javascript");
javascript = new StringBuffer();
javascript.append("1 + 1");
double result = (Double) runtime.eval(javascript.toString());
System.out.println("Result: " + result);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Rhinoをご覧ください: http://www.mozilla.org/rhino/
Oracle Nashornは、JavaとJavaScriptの世界の間の相互運用性を提供します。つまり、Java =コードはJavaScriptコードを呼び出すことができ、その逆も同様です 基本チュートリアル Oracle Nashornを使用してプログラムを記述する方法を理解します。
JDK 6に含まれていたRhino JavaScriptエンジンは、JDK 8のNashornと呼ばれる新しいエンジンに置き換えられています。
NashornのOracleブログ には、ニュースとソースコードのサンプルが含まれています。
私はこの質問に対して何か新しいことに答えたかったのです-J2V8
。
著者のIan Bullは、「RhinoとNashornは2つの一般的なJavaScriptランタイムですが、これらは多くの分野での要件を満たしていませんでした。
どちらも「Primitives」をサポートしていません。これらのプラットフォームとのすべての対話には、Integer、Double、Booleanなどのラッパークラスが必要です。 NashornはAndroidではサポートされていません。 Rhinoコンパイラーの最適化はAndroidではサポートされていません。どちらのエンジンもAndroidでのリモートデバッグをサポートしていません。 ""