2

这个问题非常具体到 TrueLicense 的实现及其工作原理。借助此处的教程以及此处的更多帮助,我已经能够使用 TrueLicense 成功地在我的软件上应用许可。但是,我仍然不清楚 TrueLicense 的某些方面以及它是如何工作的,希望有人能启发我。现在,我不明白的是,当我打电话给

licenseManager.install() 

方法(确保满足其余的先决条件)许可证文件实际在哪里持久化。我知道它会以某种方式持续存在,因为我第二次启动应用程序并运行

licenseManager.verify() 

它返回快乐的方法。我真的很感激对此的一些见解。

4

2 回答 2

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 上不需要管理员。

于 2013-02-26T00:50:00.553 回答
0

打开注册工具;在下面HKEY_CURRENT_USER/Software/JavaSoft/Prefs/{$the.package.of.your.license.classes}.

注意:这仅适用于 Windows,并且是默认行为。(有PREFERENCES_KEY原值)

于 2013-02-26T19:41:25.823 回答