Java:アプリケーションにスクリプトエンジンを埋め込む:JSR 223(ScriptEngine)はまだ良い解決策ですか?
-
27-10-2019 - |
質問
Javaアプリケーションで1つまたは多くのスクリプト言語を使用したいと思います。
から Jruby Webサイト 3つの方法があることがわかりました。
- Java 6の使用(JSR 223を使用:スクリプト)
- Bean Scripting Framework(BSF)に埋め込む
- $ your_scripting_engine $ apisを直接呼び出します
複数のスクリプトエンジンをサポートする必要があるため、オプション3で十分ではないと思います。
ソリューション1を探しているとき1. JSR 223:スクリプト、私はすべてのスクリプトエンジン統合を含むZIPアーカイブを探し始めます
Download and unzip the collection of jars from the documents and files section of the site (jsr223-engines.tar.gz or jsr223-engines.zip).
しかし、このファイルはネット上にありません(のダウロードセクション プロジェクトホーム 空です。必要に応じて、ソースをダウンロードして、必要なEnngines統合を構築できます。ソースコードは古く見えます(私が見たもののために2年以上)
JSR 223はまだ生きていて、選択するのに良い解決策ですか?そうでない場合、Bean Scripting Frameworkは良い選択肢ですか?この最後には非常に貧弱なドキュメントページがあり、サポートされているスクリプト言語はほとんどありません(ただし、私が持ちたい言語のほとんどをサポートしています)...
解決
私はいくつかのアプリケーションにサンドボックスのサイを埋め込みましたが、Rhinoコードを直接作業する方がはるかに簡単でした。
複数の異なる言語を埋め込み、すでにJSR 223 jarを所定の位置に備えているVMに展開したい場合を除き、抽象化の余分な層からあまり利益を得ることはないと思います。
埋め込む言語を選択する際に、サンドボクシングを簡単に考慮に入れていることを強くお勧めします。
所属していません StackOverflow