Android で javax.script.ScriptEngine を参照するか、JavaScript 式を評価する
-
12-09-2019 - |
質問
Androidアプリを開発する際にjavax.script.ScriptEngineライブラリを参照することはできますか?そうでない場合、Android で JavaScript 式を評価することはできますか?
解決
javax.script.ScriptEngineは、Androidのデフォルトの一部ではありませんが、あなたが簡単にあなたが必要とするすべてのライブラリを(私はわからないんだけど、サイズが合理的であると仮定して)アップJARファイルと、プロジェクトに含めることができます。
他のヒント
は、クラスjavax.script.ScriptEngine、javax.script.ScriptEngineFactoryなどについて、あなたはあなたのAndroidプロジェクトにjsr223.jarを追加することができます> Javaのビルド・パスます。
これらのクラスは、あなたのJSR 223準拠のエンジンがコンパイルできるようになります。その後、エンジンを取得するためにnew SomeScriptEngienFactory().getScriptEngine()
を行うことができます。私はJNLua 1.0.4とRhinoの1.7R2でこれを行うことができた。
HTTPからダウンロードすることができますjsr223.jarファイル://www.java2sを.COM /コード/ジャー/ jは/ Downloadjsr223jar.htm に、直接リンクは<のhref = "http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip" のrel =です"noreferrer"> http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip を。
これによれば 役職, javax.script.ScriptEngine は Android SDK では利用できません。以下の手順を試してライブラリを含めることができますが、コードはコンパイルされても実行されない可能性があります。
Windows で Android Development Toolkit を使用して、次の手順を実行して javax.script ライブラリを取得しました。
- プロジェクトを右クリックし、「プロパティ (プロジェクト)」に移動します。
- 「Java Build Path」の下で「Libraries」タブを選択しました。
- タブの中央右にある「ライブラリの追加」を選択します。
- [ライブラリの追加] で [JRE システム ライブラリ] を選択し、[次へ...] をクリックします。
- ワークスペースのデフォルト JRE (jre 7) を選択します。
- 「完了」をクリックします。
- Java ビルド パスで [OK] をクリックして、プロジェクト プロパティを存在させます。
次に、Javax.script がロードされました。
AndroidでJSのコードを評価したい場合
1) gradle の依存関係に (サイ):
compile 'org.mozilla:rhino:1.7R4'
2) JS 評価の結果を取得するには、次のようなコードを記述します。
Context rhino = Context.enter()
// turn off optimization to work with android
rhino.optimizationLevel = -1
String evaluation = "2+2"
try {
ScriptableProject scope = rhino.initStandardObjects()
String result = rhino.evaluateString(scope, evaluation, "JavaScript", 1, null).toString()
} finally {
Context.exit()
}
3) JS でより複雑なスクリプトを記述して、Android アプリでも実行できます (関数など)。