2009-09-21 17 views

回答

4

javax.script.ScriptEngine不是android的默認部分,但是您可以輕鬆地將所需的任何庫(假設大小合理,我不確定)炸開,並將它們包含在您的項目中。

3

根據此post,javax.script.ScriptEngine在Android SDK中不可用。您可以嘗試下面的步驟來包含庫,但是代碼可能無法運行,即使它會編譯。

在Windows中使用Android的開發工具包,我執行了以下步驟獲得的javax.script庫。

  1. 右鍵單擊該項目,進入屬性(項目)。
  2. 在Java構建路徑,我選擇Libraries選項卡。
  3. 選擇添加庫位於標籤
  4. 選擇JRE系統庫下添加庫中間偏右,然後單擊下一步...
  5. 選擇工作區默認JRE(JRE 7)
  6. 點擊完成。
  7. 單擊Java Build Path上的Ok以存在項目屬性。然後

在javax.script加載。

6

對於類javax.script.ScriptEngine中,的javax.script.ScriptEngineFactory等,可以將jsr223.jar添加到您的Android項目:剛纔複製的.jar文件到您的libs目錄,並從屬性添加它 - > 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

+0

您可以發佈一個示例應用程序? – 2017-02-01 14:12:19

1

如果要評估JS在android系統

1)一些代碼到你的gradle這個依賴性增加(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應用也(樂趣運行ctions等)