2

我正在寻找有关如何实现我的 java 应用程序试用版的想法。大多数帖子都是关于创建一个在停止工作时有时间限制的试用软件。就我而言,我想创建一个功能有限的应用程序,并且可以通过购买产品来解锁应用程序的所有功能。我将感谢社区对以下几点的看法。这个问题的一个转折是使这个解决方案尽可能通用,以便它可以在 Mac 和 Windows 上运行。

我对此解决方案的方法包括在应用程序启动时检查“注册”文件是否存在。如果存在有效的注册文件,则应用程序将完全正常运行。该文件将放置在用户的应用程序数据目录中。这样在 Windows 中卸载应用程序将不会触及该文件。另外,在 Mac 上,一般情况下删除 app 文件夹应该没有问题,除非用户安装了 AppCleaner 之类的软件,它会提示删除 ~/Library/Application Support 文件夹下的应用程序目录。

所以,这是我的第一个问题。对于已经购买应用程序的用户,注册文件被删除的情况,社区对此有何看法?

我认为这也与首先如何完成注册/购买有关。这是我的第二个问题。我不会在软件中处理任何信用卡交易,我宁愿贝宝做这一切。所以,假设有人购买了软件后,我给了他们一个可以解锁软件的注册码。我首先担心的是任何拥有此注册密钥的人都可以解锁该软件。我该如何限制这个?想法?

这个话题可能需要一点讨论,我希望没问题。期待听到您的意见。

编辑:我只是想回到这篇文章并更新它,提到我最终在评估了 TrueLicense 和 License3j 之后,我选择了使用 TrueLicense。我仍在弄清楚如何使用它,因为文档并不那么容易。我正在尝试研究该示例,并希望我能尽快为我的应用程序启动并运行该示例。

4

2 回答 2

1

最近我一直在对同一主题进行一些研究。我发现有必要实施许可证管理器。我为此找到了 TrueLicence开源库和带有代码示例的教程。

...当使用 True License 或任何其他 Java 许可证管理器库时,您将需要创建两个组件:

  • 软件许可证服务器,每当客户购买您的软件副本时,它都会生成新的软件许可证,以及
  • 软件许可证客户端,它是您嵌入到 Java/Swing 客户端应用程序中以安装和验证许可证的代码。
于 2012-10-27T15:40:29.920 回答
0

您可以使用 license.properties 文件,每次软件启动时都会获取其密钥/令牌。该软件将具有一些拦截器代码,该代码将从 license.properties 文件中读取密钥/令牌并将其解密并生成一个值。因此,当用户购买您的软件时,您会向他发放一个新令牌。现在这个令牌在解密时会产生一些与通常不同的值,因此您将解锁其余的功能。

您可以在网络上搜索 100 多种加密算法并将它们用于您的软件,但基本思想是这样的。

于 2012-10-27T13:16:11.540 回答