truelicense 将许可证文件保存在哪里
Posted
技术标签:
【中文标题】truelicense 将许可证文件保存在哪里【英文标题】:where does truelicense persist the license file 【发布时间】:2012-11-23 23:15:25 【问题描述】:这个问题非常具体到 TrueLicense 的实现及其工作原理。在教程here 和更有帮助的here 的帮助下,我已经能够使用 TrueLicense 成功地在我的软件上应用许可。但是,我仍然不清楚 TrueLicense 的某些方面以及它是如何工作的,希望有人能启发我。目前,我不明白的是,当我调用
licenseManager.install()
方法(确保满足其余的先决条件)许可证文件实际在哪里持久化。我知道它会以某种方式持续存在,因为我第二次启动应用程序并运行
licenseManager.verify()
它返回快乐的方法。我真的很感激对此的一些见解。
【问题讨论】:
File keyFile = new File("license.lic")
表示在当前目录
我们在实际安装许可证时指定许可证文件。但在应用程序licenseManager.verify()
的后续运行中,成功返回意味着已安装许可证,但此处未指定文件。注意,这次没有指定许可证文件,因为它没有被安装。 licenseManager 如何知道许可证文件在哪里或该信息是如何保存的。我希望这能澄清我的问题。
可以将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 上不需要管理员。
【讨论】:
谢谢!很抱歉回复晚了,但这回答了我的问题。【参考方案2】:打开注册工具;
在HKEY_CURRENT_USER/Software/JavaSoft/Prefs/$the.package.of.your.license.classes.
下
注意:这仅适用于 Windows,是默认行为。 (带有原始PREFERENCES_KEY
值)
【讨论】:
以上是关于truelicense 将许可证文件保存在哪里的主要内容,如果未能解决你的问题,请参考以下文章