2012-12-06 37 views
2

此問題對TrueLicense及其運行的實現非常具體。在教程here和更有幫助的here的幫助下,我已成功地使用TrueLicense將軟件許可應用於我的軟件。但是,我仍然不清楚TrueLicense的某些方面以及它的工作原理,希望有人能夠啓發我。現在,我不明白的是,當我致電truelicense持續許可證文件的位置

licenseManager.install() 

方法(確保先決條件的其餘部分實現)的許可文件實際上得到堅持在那裏。我知道它正在持續不知何故,因爲我第二次啓動應用程序並運行

licenseManager.verify() 

方法它返回高興。我真的很感激這方面的一些見解。

+0

'File keyFile = new File(「license.lic」)'表示它在當前目錄中 – zapl

+0

我們在實際安裝許可證時指定了許可證文件。但在應用程序的後續運行中'licenseManager.verify()'成功返回,表示安裝了許可證,但此處未指定文件。請注意,這次沒有指定許可證文件,因爲它沒有被安裝。 licenseManager如何知道許可證文件的位置或該信息如何持續存在。我希望澄清我的問題。 – Poorav

+0

可以將truelicense應用於開源第三方應用程序的擴展應用程序 –

回答

1

從源代碼(TrueLicense):

/** 
* Installs the given license key as the current license key. 
* If {@code key} is {@code null}, the current license key gets 
* uninstalled (but the cached license certificate is not cleared). 
*/ 
protected synchronized void setLicenseKey(final byte[] key) { 
    final Preferences prefs = getLicenseParam().getPreferences(); 
    if (null != key) 
     prefs.putByteArray(PREFERENCES_KEY, key); 
    else 
     prefs.remove(PREFERENCES_KEY); 
} 

如果使用標準的Java API的偏好(java.util.prefs.Preferences),你會在Windows註冊表中看到這一點。在Linux和OS X上,有一個隱藏的「。」。擁有這些密鑰的目錄。

通常,我只使用userNodeForPackage方法,因爲它不需要Windows上的管理員。

+1

謝謝!對於遲到的回覆感到抱歉,但是這回答了我的問題。 – Poorav

0

打開regedit工具; Under HKEY_CURRENT_USER/Software/JavaSoft/Prefs/{$the.package.of.your.license.classes}.

注意:這僅適用於Windows並且是默認行爲。 (原始PREFERENCES_KEY值)