是否有任何庫允許我們從Scala代碼運行JavaScript代碼(作爲String
)? JavaScript代碼是運行在JVM中還是派生的JavaScript解釋器並不重要。如何從Scala(JVM)運行JavaScript代碼?
3
A
回答
4
如果要使用當前的JVM進程,請使用JVM的ScriptEngine
。
import javax.script.ScriptEngineManager
val engine = new ScriptEngineManager().getEngineByMimeType("text/javascript")
val result = engine.eval("1 + 1")
println(result)
這使用犀牛爲JDK 7和犀牛爲JDK 8.
Java代碼和犀牛是相當無縫之間的相互作用。
如果要使用新進程,請將ProcessBuilder
與外部JS運行時一起使用。
import java.io.ByteArrayInputStream
val input = new ByteArrayInputStream("console.log(1 + 1)".getBytes)
val result = ("node" <# input).!!
println(result)
這會給你或許最快的執行,如果JS的CPU使用率很高。它也允許JS使用Node.js API,但它需要安裝Node.js。
如果你想(如果你使用Scala.js即)使用當前的JS過程,
import scala.scalajs.js
val result = js.eval("1 + 1")
println(result)
2
2
您可以使用它使用Mozilla Rhino內部Apache的Common BSF。
相關問題
- 1. 如何在JVM啓動時運行一些Scala代碼?
- 2. 從C代碼運行64位JVM
- 3. 如何從.NET代碼運行javascript?
- 4. 如何從運行我的JavaScript代碼
- 5. 如何在Eclipse中運行Scala代碼
- 6. 如何在jvm上運行scala字節碼?
- 7. 從R運行Java/Scala代碼
- 8. 如何從Scala/Java執行OCaml代碼?
- 9. 運行Javascript代碼
- 10. Scala使用JVM運行程序
- 11. Scala在JVM上運行了什麼?
- 12. 如何通過iframe運行javascript代碼?
- 13. 如何使用Crawljax運行JavaScript代碼
- 14. 如何在PHP中運行JavaScript代碼
- 15. 如何依次運行JavaScript代碼?
- 16. 我如何運行一個JavaScript代碼
- 17. JVM - 如何運行非jit編譯代碼
- 18. 如何調試在本機代碼創建的JVM中運行的Java代碼?
- 19. 可以在JVM 8上運行使用JDK 7編譯的scala代碼嗎?
- 20. 我可以從另一個JVM中的一個JVM運行JRuby代碼嗎?
- 21. 從HTML5/Javascript運行Java代碼
- 22. 從代碼後面運行javascript
- 23. 運行在Scala代碼多hiveQL語句
- 24. 運行scala代碼時出錯
- 25. 在Android設備上運行scala代碼
- 26. 在Scala代碼中運行spark-submit
- 27. 如何從命令行運行Scala + specs2?
- 28. jvm如何運行程序
- 29. 如何在服務器端Java代碼中運行JavaScript代碼?
- 30. 從JVM調用CLR代碼
偉大的答案!謝謝! – Dyin
關於第二個示例,要使其工作,它應該: 1)import scala.sys.process._ 2)將輸入重定向方法修復爲「#<」 – AlexY