2010-08-04 63 views
8

我想在Java中創建& Web技術的桌面應用程序創建桌面應用程序。選擇Java的主要原因是它是免費的,開源的,因此我們的投資會很少,我們將節省大量的許可成本等方面的投資。另外,選擇Web技術的主要原因是因爲我們目前程序員熟悉HTMl,css,Ajax等Web技術,並且我們在創建Web技術中令人驚歎的UI方面擁有豐富的經驗。是否可以使用Java後端和Web技術UI

我會給你,我們想創造的軟件的一些想法。這將是一個基於桌面的軟件,就像ERP軟件一樣。

的關鍵要求是,應該有一個偉大的UI,它應該是快速的,而不是非常耗費資源。

我聽說,實現一個偉大的GUI是可能的,但難在Java中。它可以完成但很複雜,但在Visual Studio,Microsoft產品中執行相同的操作非常簡單。

我還檢查Adobe空氣,諾基亞QT等,但他們都對我們非常昂貴,我們正在尋找前端瀏覽器的用戶界面和使用Java技術的嵌入式後端服務器/數據庫。

是否有可能建立在其中的UI使用網絡技術和有一個嵌入式服務器(如碼頭或Tomcat)和數據庫和後端的編程是用Java創建一個桌面軟件。 JavaFX如何適應這一點?

所以基本上,桌面應用程序將有一個嵌入式瀏覽器(Mozilla或一些Java的瀏覽器可與軟件打包在一起),但最終用戶永遠不應該意識到這一點。

我期待得到有關同樣的反饋。您能否提供一些以java + web技術的類似組合創建的軟件示例。

我確實研究過一些像PulpTunes & Zimbra這樣的軟件,它們沿着類似的路線走,但它們好像連接到互聯網來顯示數據。我們的軟件完全是一個離線桌面應用程序。

+0

只要GUI本身非常簡單,「非常簡單」就一直存在。 – 2010-08-04 07:53:11

回答

0

你是真正的權利,如果您正在開發通過自項目Java是巨大的。 (用於數據庫處理的ORM框架,爲任何數據庫服務器提供方言),可以使用Spring(適用於MVC,數據庫等等...非常豐富和輕量級框架,易於學習和理解)完成服務器端編碼。

對於UI,你可以使用Spring MVC或JSF或GWT或JavaFX的。 JavaFX提供JNLP下載,它可以在沒有瀏覽器的情況下在java上運行。檢查更多JavaFX示例的鏈接。 http://javafx.com/samples/

所以其對你,你要使用的UI方面的東西。如果你更喜歡網絡用戶界面(不是javaFX我的意思),那麼你可以有很多選擇。

對於Ajax,你將有哪些支持簡單的Ajax庫。像DWR(Easy Ajax,JS to JAVA)以及許多其他JS庫(如yahoo,jQuery等)都可以使用。

希望這有助於。

0

恕我直言,運行網絡服務器只是爲了創建一個桌面應用程序與js和ajax和東西的整個想法是可怕的...我聽說Apple-creator Titanium這是允許使用網絡技術創建跨平臺的應用程序。還有一些其他類似的計劃。

我想你會最終購買一個好的wyswing Swing設計工具,它將花費你幾百美元,但會爲你節省很多很多的開發麻煩。很難相信,佈置一個漂亮的桌面應用比佈置網頁更復雜。

0

我沒有得到嵌入式jetty/tomcat部分。您希望桌面應用運行與數據庫交談的嵌入式服務器?那麼每個桌面應用程序都會打開數據庫連接?

爲什麼沒有Java桌面應用程序將HTTP請求發送到連接到數據庫並處理請求的JavaEE服務器?所以基本上,Java客戶端(可以像開發人員一樣豐富)替換瀏覽器。這爲您提供了更多的可擴展性等。

我們有一個類似的(雖然要複雜得多)使用 - Swing + Apache Commons HttpClient在桌面上開發的產品。這會向服務器發送帶有序列化二進制數據的HTTP POST請求。 - 在Web容器中運行的調度程序servlet,該服務器在服務器上重新創建Java對象並執行請求。

2

首先,這是可能的。如果您正在尋找示例,請檢查http://wiki.eclipse.org/Hudson-ci/Meet_Hudson。 如果您深入瞭解代碼,您可以獲得基本架構。它不使用任何嵌入式數據庫。 你說你的應用程序將永遠處於脫機狀態,在這種情況下,我建議你使用Eclipse插件開發等技術去使用純粹的桌面應用程序。

如果你已經打定了主意,這裏有幾點可以幫助你根據我類似的應用經驗,

  1. 雖然您的應用程序脫機(我假設,你的應用程序無需連接到任何服務器用於任何用例,但用戶機器可以訪問互聯網),則需要透明地向最終用戶提供更改(例如,更改html或jsp頁面)/錯誤。 JNLP/Java web start非常適合這一點。

  2. 如果您打算使用JNLP安裝方式,則啓動程序應該在最終用戶計算機上處​​理嵌入式數據庫安裝和端口(這是比出現的大問題)。

  3. 另外,如果您通過JNLP啓動服務器(在我的情況下,Jetty),您將遇到由於權限問題導致的類加載錯誤。準備挖掘服務器代碼。我很久以前就已經完成了,現在我沒有代碼來指出確切的問題。

  4. 在安裝過程中和應用程序啓動過程中顯示進度條。你的戰爭部署需要一些時間,用戶需要知道應用程序正在啓動的過程中。你最終會寫一些swing UI。

  5. 在應用程序啓動後,在用戶系統的默認瀏覽器中自動啓動應用程序的URL。您不需要嵌入式瀏覽器。請檢查http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

  6. 我使用MySql作爲嵌入式數據庫。檢查Embedding mysql in java desktop application。它爲我工作,我沒有遇到任何問題。
0

我可能會爲此扔石頭,但我建議JavaFX爲此。我們已經成功實施了一個JavaFX應用程序供大公司內部使用。優點是軟件在服務器端被「控制」(因此,沒有人會有「舊」版本)。安裝工作很少(Java Web Start爲您解決這個問題,如果不存在,它甚至會觸發最小的JRE安裝),最後但並非最不重要的是,JavaFX可以在瀏覽器中運行,並且可以作爲純桌面應用程序運行,而無需更改代碼。

Adob​​e FLEX是另一個競爭者,但它缺乏「Web Start」位,並且在瀏覽器和桌面之間輕鬆遷移時不太靈活。

無論如何,JavaFX並不完全像FLEX那樣功能齊全,但1.3版本可以被認爲已經準備就緒,您可以使用Adobe Creative Suite的免費JavaFX插件創建整潔的東西(如果您的應用程序將包含任何圖形,那就是) 。

0

我們正在尋找做一個非常類似的事情。我們有一個現有的Java Web應用程序。我們已經測試了在安裝了Jetty和MySql的桌面系統上運行這個功能。 Chrome瀏覽器處於「應用」模式時,它看起來就像桌面應用程序。

我們正在研究這種方法,以實現我們現有成熟的在線Web應用程序的一個跨平臺(pc/mac/linux)離線版本。我想聽聽有沒有人知道類似的項目,或者可以在爲桌面應用程序運行應用程序服務器的想法中發現任何漏洞。當然,我們的目標是在必要時爲服務器和桌面實現提供基本上一個具有受保護變體的代碼庫。

1

是的,這是可能的。請參閱https://github.com/jreznot/electron-java-app演示。在那裏你可以找到一種簡單的方法來在Java上構建基於Electron的應用程序,而不需要編譯JS,只需要使用帶有Vaadin UI的嵌入式Jetty實例的Java應用程序。

相關問題