Ссылка javax.script.ScriptEngine на Android или оценить выражение JavaScript - PullRequest
8 голосов
/ 21 сентября 2009

Можно ли ссылаться на библиотеку javax.script.ScriptEngine при разработке приложения для Android? Если нет, то есть ли возможность оценить выражение javascript в Android?

Ответы [ 4 ]

7 голосов
/ 12 января 2016

Для классов javax.script.ScriptEngine, javax.script.ScriptEngineFactory и т. Д. Вы можете добавить jsr223.jar в свой проект Android: просто скопируйте файл .jar в каталог libs и добавьте его из Properties- > Путь сборки Java.

Этот класс позволит вашим JSR 223-совместимым движкам компилироваться. Затем вы можете сделать new SomeScriptEngienFactory().getScriptEngine(), чтобы получить двигатель. Мне удалось сделать это с JNLua 1.0.4 и Rhino 1.7R2.

Файл jsr223.jar можно загрузить с http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm, по прямой ссылке http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip.

4 голосов
/ 21 сентября 2009

javax.script.ScriptEngine не является частью Android по умолчанию, но вы можете легко собрать все нужные вам библиотеки (если я уверен, что размер приемлемый) и включить их в свой проект.

3 голосов
/ 02 марта 2017

Если вы хотите оценить некоторый код в JS в Android

1) к вашим зависимостям gradle добавьте ( rhino ):

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 (функции и т. Д.)

3 голосов
/ 21 декабря 2013

Согласно этому сообщению , javax.script.ScriptEngine недоступен в Android SDK. Вы можете попробовать выполнить следующие шаги, чтобы включить библиотеку, но код может не работать, даже если он скомпилируется.

Используя Android Development Toolkit в Windows, я выполнил следующие шаги, чтобы получить библиотеку javax.script.

  1. Щелкните правой кнопкой мыши по проекту, зашли в Свойства (Проект).
  2. В разделе «Путь сборки Java» я выбрал вкладку «Библиотеки».
  3. Выберите Добавить библиотеку, расположенную в средней правой части вкладки
  4. Выберите Системная библиотека JRE в разделе Добавить библиотеку и нажмите Далее ...
  5. Выбор рабочей области по умолчанию JRE (jre 7)
  6. Нажмите Готово.
  7. Нажмите Ok на пути сборки Java, чтобы открыть свойства проекта.

Затем был загружен Javax.script.

...