代码之家  ›  专栏  ›  技术社区  ›  Tawani

在Android中引用javax.script.scriptEngine或评估javascript表达式

  •  8
  • Tawani  · 技术社区  · 15 年前

    在开发Android应用程序时,是否可以引用javax.script.scriptEngine库? 如果没有,是否有可能在Android中评估javascript表达式?

    4 回复  |  直到 8 年前
        1
  •  4
  •   Whaledawg    15 年前

    script.scriptEngine不是Android的默认部分,但是您可以很容易地创建所需的任何库(假设大小合理,我不确定),并将它们包含在您的项目中。

        2
  •  7
  •   Danke Xie    9 年前

    对于JavaX.Script .Script引擎、JavaX.Script .Script PlutoCluttory等,可以将JSR223.jar添加到Android项目中:只需将.jar文件复制到LIBS目录中,并从Projt>Java构建路径中添加它。

    这些类将允许您的JSR 223兼容引擎进行编译。然后你可以这样做 new SomeScriptEngienFactory().getScriptEngine() 去买引擎。我已经用JLua1.0.4和Rhino1.7r2做到了这一点。

    文件jsr223.jar可从 http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm ,直接链接是 http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip .

        3
  •  3
  •   Community CDub    8 年前

    根据这个 post ,javax.script.scriptEngine在Android SDK中不可用。您可以尝试以下步骤包括库,但代码可能无法运行,即使它将编译。

    使用Windows中的Android开发工具包,我执行了以下步骤来获取javax.script库。

    1. 右键单击项目,转到属性(项目)。
    2. 在Java构建路径下,我选择了“库”选项卡。
    3. 选择选项卡右中角的“添加库”
    4. 选择添加库下的JRE系统库,然后单击下一步…
    5. 选择工作区默认JRE(JRE 7)
    6. 单击“完成”。
    7. 单击Java生成路径上的OK以存在项目属性。

    然后加载javax.script。

        4
  •  3
  •   Arkadiusz Cieśliński    8 年前

    如果您想在Android中评估JS中的一些代码

    1)向您的渐变相关性添加( 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应用程序中运行(函数等)。