Android で javax.script.ScriptEngine を参照するか、JavaScript 式を評価する

StackOverflow https://stackoverflow.com/questions/1454425

質問

Androidアプリを開発する際にjavax.script.ScriptEngineライブラリを参照することはできますか?そうでない場合、Android で JavaScript 式を評価することはできますか?

役に立ちましたか?

解決

javax.script.ScriptEngineは、Androidのデフォルトの一部ではありませんが、あなたが簡単にあなたが必要とするすべてのライブラリを(私はわからないんだけど、サイズが合理的であると仮定して)アップJARファイルと、プロジェクトに含めることができます。

他のヒント

ちょうどあなたのlibsディレクトリに.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 ライブラリを取得しました。

  1. プロジェクトを右クリックし、「プロパティ (プロジェクト)」に移動します。
  2. 「Java Build Path」の下で「Libraries」タブを選択しました。
  3. タブの中央右にある「ライブラリの追加」を選択します。
  4. [ライブラリの追加] で [JRE システム ライブラリ] を選択し、[次へ...] をクリックします。
  5. ワークスペースのデフォルト JRE (jre 7) を選択します。
  6. 「完了」をクリックします。
  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 アプリでも実行できます (関数など)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top