Можно ли ссылаться на библиотеку javax.script.ScriptEngine при разработке приложения для Android? Если нет, то возможно ли оценить javascript-выражение в android?
Ссылка javax.script.ScriptEngine в android или оценить выражение javascript
Ответ 1
javax.script.ScriptEngine не является частью Android по умолчанию, но вы можете легко собрать все нужные вам библиотеки (при условии, что размер разумный, я не уверен) и включить их в ваш проект.
Ответ 2
Для классов javax.script.ScriptEngine, javax.script.ScriptEngineFactory и т.д. вы можете добавить jsr223.jar в свой проект Android: просто скопируйте файл .jar в каталог libs и добавьте его из свойства- > Путь сборки 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.
Ответ 3
В соответствии с этим сообщением javax.script.ScriptEngine недоступен в Android SDK. Вы можете попробовать следующие шаги, чтобы включить библиотеку, но код может не работать, даже если он будет компилироваться.
Используя Android Development Toolkit в Windows, я выполнил следующие шаги, чтобы получить библиотеку javax.script.
- Щелкните правой кнопкой мыши по проекту, перейдите в раздел Свойства (Проект).
- В разделе "Путь сборки Java" я выбрал вкладку "Библиотеки".
- Выберите "Добавить библиотеку", расположенную в середине справа от вкладки
- Выберите JRE System Library в разделе "Добавить библиотеку" и нажмите "Далее"...
- Выберите рабочее пространство по умолчанию JRE (jre 7)
- Нажмите "Готово".
- Нажмите "ОК" на пути построения Java для существования свойств проекта.
Затем загрузился Javax.script.
Ответ 4
Если вы хотите оценить некоторый код в JS в android
1) к вашим зависимостям gradle add (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 (функции и т.д.)