참조 javax.script.scriptengine에서 Android 또는 JavaScript 표현식을 평가하십시오

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

문제

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 라이브러리를 얻기 위해 다음 단계를 수행했습니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 속성 (프로젝트)으로 이동했습니다.
  2. Java 빌드 경로에서 라이브러리 탭을 선택했습니다.
  3. 탭 오른쪽 중앙에있는 라이브러리 추가를 선택하십시오.
  4. 라이브러리 추가에서 JRE 시스템 라이브러리를 선택하고 다음을 클릭하십시오 ...
  5. 작업 공간 선택 기본 JRE (JRE 7)
  6. 완료를 클릭하십시오.
  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 앱에서도 실행할 수 있습니다 (기능 등).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top