Java ScriptEngine がサポートする言語
-
21-12-2019 - |
質問
Javaには スクリプトエンジン 別の言語でステートメントを実行/評価できるシステム。
JavaScript がサポートされていることは確かに知っていますが、それを使用できる他の言語が見つかりませんでした。
たとえば、Ruby は実装されていますか?
解決
.. JavaScriptがサポートされているという事実を知っています..
ECMAScript 、技術的に。
..しかし、私はそれを扱う他の言語が見つかりませんでした。 たとえば、Rubyは実装されていますか?
いいえ。ECMAScriptエンジンはデフォルトで含まれている唯一のものです。
他のヒント
これは、システム上のすべての言語を決定するためのスクリプトです。
import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
public class Test {
public static void main(String[] args)
{
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> factories = mgr.getEngineFactories();
for (ScriptEngineFactory factory : factories)
{
System.out.println("ScriptEngineFactory Info");
String engName = factory.getEngineName();
String engVersion = factory.getEngineVersion();
String langName = factory.getLanguageName();
String langVersion = factory.getLanguageVersion();
System.out.printf("\tScript Engine: %s (%s)\n", engName, engVersion);
List<String> engNames = factory.getNames();
for (String name : engNames)
{
System.out.printf("\tEngine Alias: %s\n", name);
}
System.out.printf("\tLanguage: %s (%s)\n", langName, langVersion);
}
}
}
.
これが役立つことを願っています。
ScriptEngineではなく、まだBSFを使用することはできます。 Apache Commons Bean Scripting Framework 、あなたはそれがドキュメントを見つけることができますここ。 -
BSF 2.xは現在いくつかのスクリプト言語をサポートしています。
- JavaScript(MozillaプロジェクトのRhino Ecmascriptを使用)
- NetRexx(JavaのIBM REXXスクリプト言語の拡張子)
- commons jexl
- Python(Jythonを使用)
- tcl(JACLを使用)
- XSLTスタイルシート(Apache XMLプロジェクトのザランとゼロのコンポーネントとして)
さらに、以下の言語が独自のBSFエンジンでサポートされています。
他のいくつかの言語があります。たとえば、Jython(JavaのPython実装)。他の言語を使用する方法は、JARファイルをクラスパスに追加し、正しい名前を参照してください。
Rubyの場合、JRubyがあります。次の項目を参照してください。 https://github.com/jruby/jruby/wiki/javantegration
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine rubyEngine = m.getEngineByName("jruby");
. Java ScriptEngine API は、すべての JSR-223 スクリプト言語で動作します。これらの完全なリストを十分に文書化したものはこれまで見つけていませんでしたが、この投稿はかなり良い仕事をしています。利用可能な JSR-223 スクリプト言語のリストはどこで見つけられますか?以下はその投稿のリストの 1 つです。
JSR-223 スクリプト エンジン
- AWK
- ビーンシェル
- ejs
- フリーマーカー
- グルーヴィー
- ジャスケル
- ジャワ
- JavaScript
- JavaScript(Webブラウザ)
- ゼリー
- JEP
- ジェスル
- 日本標準時
- 柔道スクリプト
- ジュエル
- OGNL
- プナッツ
- パイソン
- ルビー
- スキーム
- 寝る
- Tcl
- 速度
- XPath
- XSLT
JSR 223 スクリプト エンジンは別の場所で維持されます
- JavaFX スクリプト
- ABCL
- AppleScript
- ベックススクリプト
- OCaml スクリプト プロジェクト
- PHP
- PHP(別のもの)
- パイソン
- 雑談
- カジュスクリプト
- 数学エクリプス
ほとんどの場合、それを機能させるために特別な実装が必要です。たとえば、Python だけでは機能しないため、Jython jar をクラスパスに追加する必要があります。Ruby の場合も同様に JRuby が必要です。