WebView具有內置的JavaScript引擎。它使用什麼引擎? openjdk和oracle jdk是一樣的嗎?像JSR 223引擎一樣,它可以與WebView分開使用嗎?javafx內部使用了哪些JavaScript引擎?
回答
的JavaScript運行時在Oracle JRE
完整的Oracle Java運行時8個附帶兩個JavaScript引擎:
- Nashorn:「犀牛的目標是實現一個輕量級的高性能JavaScript運行在這個項目旨在讓Java開發人員通過JSR-223將JavaScript嵌入到Java應用程序中,並使用jrunscript命令行工具開發獨立的JavaScript應用程序。「
- JavaScriptCore:內置於WebKit實現中的JavaScript引擎由包含在JavaFX系統中的WebView組件組成。
JavaScript運行通過的WebView和JavaFX應用程序
的JavaFX的Webkit不使用犀牛使用,它使用的JavaScriptCore。
您可以使用Nashorn to program JavaFX applications and APIs (as an alternative to programming in Java),你可以使用犀牛作爲JavaFX的FXML文檔的JavaFX腳本引擎,但你不能用犀牛作爲的WebView中的JavaScript引擎。
背景源信息
有使用JavaFX郵件列表上的JavaFX開發者提供了一些information on the JavaScript implementation in WebView。引用Oracle JavaFX開發人員Richard Bair的話(他引用WebKit開發人員Olivier Hunt的話):
那麼......。它是這樣的。 WebKit默認帶有JavaScriptCore,這是我們使用的JS引擎。這很不錯。我的理解是JavaScriptCore(又名SquirrelFish aka Nitro)是the same JS engine used by Safari。當Chrome和Apple都是WebKit的一部分時,Google將其放入WebKit的抽象層之一是能夠更換JavaScript引擎。當Google將WebKit分爲Blink時,WebKit項目對不同JSVM的抽象需求就消失了。因此,WebKit人員一直在討論如何去除那些抽象,如you won't be able to swap out the JS engine,[further info]。如果/當發生這種情況時,我們很難(或不可能)切換到Nashorn WebView。我們不打算分叉WebKit,所以我們必須遵循什麼WebKit。
「支持V8放在WebKit的一個相當大的負擔,也有一些 用於支持多個 JS引擎需要大,笨重和昂貴的抽象(見從多年的話題原來討論前)。
此外,我們只會在WebKit2中支持JSC,所以我認爲任何東西都不能說服我至少說,維持對多個JS引擎的支持對於項目來說是有益的。 - 奧利弗亨特
免責聲明
這個答案是關係到甲骨文的Java 8個釋放;備用和未來的JavaFX和Java實現可能有不同的內部實現。
願它從WebView中單獨使用,就像JSR 223的發動機?
WebView中的JavaScriptCore不能作爲JSR 223引擎與WebView分開使用(據我所知)。
我認爲最好將JavaScriptCore實現視爲支持WebView作爲WebView組件的內部實現細節,而不是將JavaScript實現視爲其他地方使用的通用JavaScript運行時。它不是在WebView中特定用途以外的正式支持的組件,並且在那裏使用時,公共WebView API將屏蔽您使用它的JavaScript運行時的實現細節:這對於JavaScript運行時所用的用戶來說是故意不透明的實際上用於在WebView組件中執行JavaScript。
更新
由於OP更關心的JavaFX的WebView,它使用JavaScriptCore
。請閱讀JewelSea's answer以獲得更好的理解。
的JavaFX的Webkit不使用犀牛,它使用的JavaScriptCore
Oracle Nashorn
是Java 8中的JavaScript引擎,直到Java 7中,所使用的JavaScript引擎是基於Mozilla Rhino
。
是的,Oracle JDK和OpenJDK是一樣的。
你可以在Oracle Site找到更多關於Nashorn的信息。
- 1. XSLT使用哪個JavaScript引擎
- 2. Paw使用了什麼JavaScript引擎?
- 3. Flask在內部引發了哪些狀態碼?
- 4. 在MyISAM和InnobDB引擎中使用了哪種索引?
- 5. html引擎JavaFX使用什麼?
- 6. 瞭解應用引擎部署模型
- 7. PHP有哪些模板引擎選項?
- 8. JBoss AS 7支持哪些XQuery引擎?
- 9. 目前正在使用哪些技術來加速下一代JavaScript引擎?
- 10. HTTP頭的哪些部分被我的重寫引擎解析?
- 11. 哪些搜索引擎蜘蛛執行javascript?
- 12. Google Analytics引用了哪些Safari版本?
- 13. 哪些正則表達式引擎(flavor)會使用「Some Package」?
- 14. 主流瀏覽器使用哪些引擎?
- 15. JavaFX 2-實現Web引擎
- 16. 我在哪裏可以找到有關Javascript引擎內部的信息?
- 17. 如何區分哪些變量用於innodb引擎或MyIsam引擎?
- 18. 你做了哪些內容/看到了使用過程技術
- 19. XNA瞭解哪些內容佔用了太多內存?
- 20. 內部CSS去哪了?
- 21. 瞭解JavaScript模板引擎嗎?
- 22. 識別在頁面上實際使用了哪些外部JavaScript引用的工具
- 23. 哪些方法在內部調用GetHashCode?
- 24. 在CLR 4.0中引入了哪些OpCodes?
- 25. php5引入了哪些主要功能?
- 26. jasperreports引擎從哪裏引用字體?
- 27. 如何知道在MySQL中使用了哪些索引?
- 28. 哪些工具可以用於使用應用程序引擎編寫python
- 29. GCC內部結構:刪除了哪些假解除?
- 30. 使JavaScript生成的內容可以讓搜索引擎索引
您確定要使用webkit嗎?它是一個本地組件,所以它可能會使用它自己的v8 – ayvango
在Java 8中的WebVIew不使用Nashorn,也不使用V8。 – jewelsea