참조 javax.script.scriptengine에서 Android 또는 JavaScript 표현식을 평가하십시오
-
12-09-2019 - |
문제
Android 애플리케이션을 개발할 때 javax.script.scripttengine 라이브러리를 참조 할 수 있습니까? 어쨌든 안드로이드에서 자바 스크립트 표현식을 평가할 수 있습니까?
해결책
javax.script.scriptengine은 Android의 기본 부분이 아니지만 필요한 라이브러리를 쉽게 자울 수 있습니다 (크기가 합리적이라고 가정하고 확실하지 않다고 가정 함). 프로젝트에 포함시킬 수 있습니다.
다른 팁
클래스 javax.script.scripttengine, javax.script.scriptenginefactory 등의 클래스의 경우 JSR223.jar를 Android 프로젝트에 추가 할 수 있습니다. 길.
이 클래스는 JSR 223 호환 엔진을 컴파일 할 수 있습니다. 그런 다음 할 수 있습니다 new SomeScriptEngienFactory().getScriptEngine()
엔진을 얻으려면. JNLUA 1.0.4와 Rhino 1.7R2 로이 작업을 수행했습니다.
jsr223.jar 파일은 다운로드 할 수 있습니다 http://www.java2s.com/code/jar/JAR/JAR/JAR/JARDOADJSR223JAR.HTM, 직접 링크입니다 http://www.java2s.com/code/jardownload/jsr223/jsr223.jar.zip.
이것에 따르면 게시하다, javax.script.scriptengine은 Android SDK에서 사용할 수 없습니다. 라이브러리를 포함시키기 위해 아래 단계를 시도 할 수 있지만 코드가 컴파일 되더라도 코드가 실행되지 않을 수 있습니다.
Windows에서 Android Development Toolkit을 사용하여 Javax.script 라이브러리를 얻기 위해 다음 단계를 수행했습니다.
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 속성 (프로젝트)으로 이동했습니다.
- Java 빌드 경로에서 라이브러리 탭을 선택했습니다.
- 탭 오른쪽 중앙에있는 라이브러리 추가를 선택하십시오.
- 라이브러리 추가에서 JRE 시스템 라이브러리를 선택하고 다음을 클릭하십시오 ...
- 작업 공간 선택 기본 JRE (JRE 7)
- 완료를 클릭하십시오.
- Java 빌드 경로에서 확인을 클릭하십시오. 프로젝트 속성이 존재합니다.
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 앱에서도 실행할 수 있습니다 (기능 등).