这个问题非常适合TrueLicense的实现及其运作。借助于教程here和更有用的here,我已经能够使用TrueLicense在我的软件上成功应用许可。但是,我对TrueLicense的某些方面及其工作方式尚不清楚,希望有人能启发我。现在,我不明白的是,当我打电话给
licenseManager.install()
方法(确保满足其余的先决条件)实际在哪里保留了许可证文件。我知道它会以某种方式持续存在,因为第二次启动应用程序并运行
licenseManager.verify()
方法返回快乐。我真的很感谢对此有一些见识。
最佳答案
从源代码(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上不需要管理员。