2013-03-25 132 views
1

我必須創建具有符合以下特徵的Java應用程序jar創建一個運行一次只-Java應用程序

  • 有裝在罐子裏的XML數據被讀取的應用程序第一次開始。隨着應用程序的每次連續啓動,數據都從動態創建的二進制文件中加載。
  • 客戶不應該能夠將應用程序重置爲其主要狀態(例如,如果由於某種原因二進制文件被刪除,應用程序將無法再次運行並給出錯誤消息)。
  • 這一切不應該依賴於它運行(這意味着如在Windows中設置註冊表項不會做的工作)

總結我想,以防止一旦開始申請重置操作系統以限制應用程序的非法複用。

現在我就如何實現這一目標的想法:

  • 在第一次運行中刪除從罐子XML(到目前爲止我才恍然大悟,這是不可能的,讓應用程序編輯它自己罐子。是真的嗎?)
  • 設置一個變量/屬性/設置/不管在第一次運行永久罐子(是可能的)

任何建議/關於如何實現這一目標的想法?

更新:

我沒有找到這個確切的問題的解決方案,但我發現一個簡單的解決方法:用我的軟件一起我船某個特定文件的程序啓動第一次後得到改變。當然,如果有人保留原始文件的副本,他總是可以替換它並重新開始。

+2

沒有完美的解決方案。在每次運行之前,總有人可以保存備份並從備份中恢復。 – raptortech97 2013-03-25 16:29:43

+0

我知道沒有完美的解決方案,但我想讓它更難一點。我也知道,在運行一次之前複製jar會使整件事變得毫無意義。但它會很好,以防止已經運行的jar被重置 – gagabu 2013-03-25 16:35:33

回答

1

任何能夠刪除二進制文件的用戶將有足夠的時間也能夠恢復在jar中所做的任何更改。當應用程序的唯一現有部分在用戶手中時,您將無法阻止對其進行更改。

您可以輕鬆存儲原始jar的備份,製作副本,將其用於一次運行,刪除,複製原始jar等。您需要某種機制在用戶機器之外,例如激活服務器。用戶獲取一個代碼來激活一個帳戶,並且不能再次使用該代碼。

+0

我意識到這一點,但它已經有必要獲得應用程序的第二個實例,因爲在至少嘗試它之前已經有人不太可能複製它了一旦。然後這個'作弊'似乎不是很明顯 – gagabu 2013-03-25 16:38:56

相關問題