2011-09-02 35 views
2

問題:將沒有緩存的便攜式網頁瀏覽器嵌入到Java應用程序中?使用Java SE。 可以這樣做嗎?是否有任何JNI支持Chrome或Firefox?嵌入在Java應用程序中的便攜式Web瀏覽器?

也許Qt? QtJambi會允許與Webbrowser連接?從我所瞭解的QtJambi現在由社區和LPGL維護的,QtWebbrowser是否可用於此目的的相同許可證?

回答

3

研究現有的文件和在過去幾天這是又出現了:

開源瀏覽器是Webkit(用於例如Safari)以及Mozilla風格的Firefox。還有Chromium,它是Google風格的Chrome的開源版本,它使用較小的JavaScript引擎(松鼠而不是V8),並且沒有Google Chrome的多線程模塊化功能。

有關Firefox的其他信息:Mozilla Firefox基於一個名爲xulrunner的應用程序,它使用xml和javascript來提供firefox的附加功能(除了'不那麼基本'的瀏覽器 - 諸如html解析器,css渲染器和JavaScript解析器)。 Xulrunner是瀏覽器的實現。

Firefox實現了它自己的私有的xulrunner,但是另外還有xulrunner作爲獨立安裝。

Xulrunner可用於創建基於Web瀏覽器的獨立應用程序,並支持JavaScript。 Xulrunner也被用來爲Firefox提供額外功能的插件。爲了將前端連接到比JavaScript(近幾年有所改進)更持久和更強大的東西,但仍然不是最強大的持續引擎,有一個C庫稱爲XPCOM。

Xulrunner使用xpcom(用C語言編寫)顯示javascript變量並解析dom,並鏈接javascript變量,並執行其他「瀏覽」操作,例如讀取頭文件等。有關Xulrunner和xpcom的更多信息。

如果你想要一個瀏覽器是最近的功能(html 4或5,對css2至少有很好的支持,以及一些css3和javascript的實體渲染),除了編譯和嵌入其中一個open源瀏覽器是使用SWT。

SWT是一個gui接口,類似於swing,只是它實現了webbrowser類型的接口,並且可以用來實現瀏覽器。 SWT也有一些開發的接口來與dom等進行交互。 SWT由IBM開發,並得到積極維護。

SWT做的是實現OS系統瀏覽器,並且支持每個主要的操作系統。好處在於,這意味着不需要嵌入自己的瀏覽器,不管怎樣,無論瀏覽器/解析器在操作系統上存在哪種版本,都會陷入困境。 SWT的Windows操作系統的默認行爲是使用Internet Explorer。

也可以通過安裝xulrunner來實現像firefox這樣的非os鏈接的瀏覽器,但這是一個額外的20mb(不是廣泛的但需要注意的),因爲Firefox的更新版本無法識別。

它是有JavaXPCOM的支持和xulrunner的實施在SWT火狐瀏覽器風格的要求。獲取Firefox所支持的最新版本(xulrunner 1.9。)對於javaxpcom最簡單的方法是下載一個名爲prism的應用程序。 Prism使用xulrunner作爲其基礎來創建獨立於特定URL的瀏覽器。有一個已知的黑客攻擊者1.9。其中有一些問題 - 如果您想下載xulrunner 1.9。*已經從源代碼編譯,請參閱wikipedia以獲取有關此信息。

Xulrunner是與Firefox瀏覽器的每一個新版本一起開發的。直到v 1.9。*(firefox 3. *如果我沒有弄錯),還有一個名爲javaxpcom的函數的額外支持,它是一個用於將c庫Xpcom的函數鏈接到java的接口。

Firefox最初宣佈它嵌入和設計自己的xulrunner風格是多麼容易和簡單,並且很容易移植到許多不同的語言(支持C,最初支持Java和Python等),但顯然有一些開銷來訪問和添加庫。

XULRunner是被宣傳爲一個潛在的軟件解決方案,在同一個公平的競爭環境的Java競爭,但遭受的的JavaScript/HTML應用程序相同的限制。在這些參數中起作用。

由於的XULrunner版本2,對於JavaXPCOM的支持已枯萎,因爲有該代碼的無活性維護者。這是開源的解決方案,所以大概從具備必要技能的人中獲得興趣可能會挑選出來。 Xulrunner最近在寫這個答案的時候是第6版。然而,Xpcom仍然強勁。據推測,社區中沒有足夠的興趣/活動,還有其他潛在的問題。

由於javaxpcom已被破壞,並要求有人對代碼保持興趣;該工作必須來自對Xulrunners xpcom有既定理解的人員,或者至少來自了解xpcom中所做更改的人員的協作。我讀過的評論表明,有關xulrunner的文檔可能並不詳細,javaxpcom也不盡如人意,但我無法評估這些評論。

我曾希望基本核心功能可以簡單地一直保持,保持在功能「嵌入」參與近期的瀏覽器的改進的辛勤工作。 Firefox的修改導致擴展打破了新版本,與時俱進。

嵌入web瀏覽器等被稱爲webrenderer.com非開源解決方案。它保持不變,但附有價格標籤,這不是微不足道的。

實現在Java應用程序的網絡瀏覽器的另一個可能的途徑是走所謂的Qt跨平臺開發平臺的路線。 QtJambi是一個LPGL許可(以前是商業化的)網頁瀏覽器,它擁有大量的Java實現文檔和支持。顯然,使用任何新平臺都有附加的學習曲線。從商業轉向LPGL的原因是什麼?據推測,Java支持的瀏覽器的可行性和商業需求已經減少了?毫無疑問,這是我們生活的時代的一個功能。

GWT是java/webbrowser google解決方案。 GWT的工作原理是允許開發人員編寫Java解決方案,然後將此解決方案移植到可以模糊處理的穩定JavaScript中。但是,GWT不適合開發桌面型應用程序,因爲它需要後端的「服務器」實現。從這個意義上說,它最適合或類似於PHP或ASP風格的客戶端/服務器解決方案。

儘管將GWT編寫爲桌面應用程序並非不可能,但大概您必須實現Apache Derby或Jetty或類似的內部服務器才能完成所有的前後工作。它不是整潔,優雅或專門爲此設計的,但茜草解決方案已經嘗試過。已經有php風格的桌面應用程序。

對於一些政治和經濟動機的原因,出現移植/嵌入Java和開源瀏覽器的支持不就起來了,這與蘋果的缺乏支持Java應用程序的興趣開始的趨勢。你要知道,瀏覽器是開源的,大概有足夠的時間和精力,JavaXPCOM的等能夠持續,但誰去免費做這個,我不知道。

Java的承諾一個Java瀏覽器實現,但這並沒有與Java 7發佈,需要像大多數其他的事情,工作的量。也許在8?目前還不清楚它是否會在那時做好準備,如果它目前在路線圖上,並且看起來並不是他們最優先考慮的因素,我就不能完全弄清楚。

SWT需要一些額外的庫和安裝在各種平臺上運行。

其他一些開源解決方案,至少部分地做似乎工作,但維護,支持和出現混合,目前無興趣,包括JRex,MozSwing。犀牛是一個JavaScript引擎,飛碟是一個html4渲染器。

+1

的JavaXPCOM已經在Firefox的更高版本支持,包括版本10和24,其不再碎了! :) – John

1

如果您在談論基於Java SE的應用程序,我會強烈推薦swt'瀏覽器'組件。我已經用它自己的基於Eclipse RCP應用程序中,它就像一個魅力(閃光燈,支持javascript)

+1

SWT的「瀏覽器」實例的默認桌面瀏覽器,兩者可能。這很棒。不過,我希望能夠使用swt - 通過便攜式應用程序 - 無需緩存。除非可以將swt配置爲設置無緩存所謂的「私有」模式,否則它不適合我所考慮的任務。是的,Java SE。 – John

+1

所有瀏覽器緩存到臨時目錄中的任何事件....打擾...... – John

相關問題