Обратитесь к javax.script.ScriptEngine в Android или вычислите выражение javascript

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

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

Этот класс позволит компилировать ваши движки, совместимые с 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.

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

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

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

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

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

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