2011-05-29 118 views
3

我的公司已經開發了一個Web應用程序(J2EE環境/ Tomcat服務器),並希望將其作爲產品銷售。客戶可以將此產品用作基本版或高級版。在高級版中,客戶有一些額外的功能(可能是一些額外的鏈接)。這個區別是基於串行密鑰進行的。將戰爭文件轉換爲可執行文件

當上述事情被討論時,我只是一個聽衆。

正在做上述問題可能嗎?我們如何將戰爭文件轉換爲exe文件並嵌入邏輯來區分高級或基本版本。

+0

war文件?你的意思是.jar嗎? – Moshe 2011-05-29 13:08:28

+0

沒有戰爭文件。 Web應用程序存檔。 – vinoth 2011-05-29 13:09:46

+3

我認爲,製作戰爭文件到可執行文件沒有任何意義.. – 2011-05-29 15:01:36

回答

3

我們如何將war文件轉換爲exe文件並嵌入邏輯來區分高級或基本版本。

這些是2個不同的要求,它們之間沒有任何關係。

如果您有一個Web應用程序,您可以使用網頁輸入序列密鑰(例如Jira),也可以讓密鑰(或密鑰文件的文件名)在Context.xml中編寫,並讓servlet讀取該上下文參數。根據關鍵,應用程序可以允許或不允許某些功能。

至於轉換爲可執行文件,可執行文件有多種解釋。我認爲「戰爭」文件是足夠可執行的 - 將其轉儲到tomcat中並運行。

如果你想單機版,你可以提供一個tomcat發行版,並且你的應用程序可以預先部署(同Jira一樣),或者使用Jetty嵌入式容器。雖然這可能不適合繁重的工作量。

你甚至可以嘗試使用gjc(Gnu Java編譯器)將jetty +你的web應用程序轉換爲本地exe文件,儘管我懷疑它會像正常部署的版本一樣工作。

我建議你通過上下文參數注入密鑰,或者創建一個可以輸入密鑰的管理頁面。

+0

優秀的答案:)謝謝! – Killrawr 2012-05-19 06:30:31

3

WAR是web應用程序存檔。它應該在帶有servlet容器的web服務器上執行。 executabele JAR需要一個帶有main()方法的類,但是一個web應用程序通常沒有任何東西,因爲這是servlet容器的責任,而不是web應用程序。通常情況下,WAR將按原樣分發,serveradmin負責將其部署到servlet容器。如有必要,您可以包括一些文件,介紹如何爲各種容器做到這一點。

如果你真的打算出售一個Web應用程序作爲桌面應用程序的一些不明顯的原因,那麼你最好的選擇是包括一個像Jetty這樣的可嵌入的servlet容器,並且沿着它創建一個帶有main()方法的類,嵌入式servlet容器的WAR文件部署到它並運行servlet容器。這可以反過來被包裝在一個可執行文件JAR中。

或者,您也可以將其託管在互聯網上某處並提供特定的登錄名。

相關問題