2014-10-26 193 views
0

我正在開發一個Java應用程序,它有一個試用版。 我需要保存所有信息以激活xml文件中的應用程序(如過期的日期和應用程序ID),我需要將此文件保存在絕對路徑中,這對所有pc都是相同的。所有PC的固定絕對路徑

你能幫我嗎?

回答

2

不要。任何事情都使用絕對路徑是非常糟糕的做法。 爲什麼不把XML文件保存到特定於用戶的文件夾(如果您的許可證綁定到人員),或保存到相對於您的應用程序的文件夾(如果您的許可證綁定到計算機上,正如您的問題似乎表明的那樣) ?

+0

的問題是,如果我把它保存到相關的文件夾的應用程序,如果有人過期一天後刪除整個文件夾,並重新安裝applicaition,它會得到一個新的試用版同一臺機器,我不希望發生這種情況 – 2014-10-26 14:17:51

+0

我該如何將它保存到特定於用戶的文件夾中?就像在「我的文檔」文件夾中一樣? – 2014-10-26 14:19:29

+2

如果用戶刪除了固定位置的文件,該怎麼辦?然後,即使不卸載應用程序,她也可以創建新的密鑰。解決問題的方法有兩種,一種方法是將許可證密鑰綁定到計算機上(例如,參見License4J),另一種方法是確保一個人無法請求多個密鑰(通過要求生成密鑰之前尚未使用的有效電子郵件地址例)。 '隱藏位置安全'是一種'混淆安全'的形式,並不是一個好主意。 – 2014-10-26 14:21:05

0

我同意,使用絕對路徑可能不會去,但解決你的問題,你可以得到用戶的名稱,像這樣

String username = System.getProperty("user.name"); 

從那裏,你可以使用windows文件結構,以獲得方式到文檔文件夾

String documentsFolder = "C:/Users/"+username+"/Documents"; 

使用該目錄路徑,您可以讀取和寫入該文件夾。此文件夾結構只適用於Windows,並且需要在Mac或Linux機器上更改,但用戶名可以通過相同的方式獲得。

只是一個建議。如果您僅支持Windows計算機,也許可以創建一個註冊表,其中包含應用程序的開始日期和結束日期,並將其用作參考點,即使應用程序已卸載或重新安裝,該參考點也將保持一致。也許創建一個系統變量與日期可能是另一種方式去。只是幾個想法。

希望這有助於