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 将许可证文件保存在哪里的主要内容,如果未能解决你的问题,请参考以下文章

java许可证强制执行,创建激活密钥的算法? [关闭]

使用truelicense实现用于JAVA工程license机制(包括license生成和验证)

将输出错误消息保存到 MATLAB 中的文件

oraclelicense的许可在哪里打开

file_put_contents 将文件保存到哪里?

ps 磨皮插件安装许可在哪里找?