创建Java应用程序的试用版,function有限

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

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

所以,这是我的第一个问题。 对于已经购买了应用程序的用户,如何处理删除注册文件的情况,社群的想法是什么?

我认为这也与首次注册/购买的方式有关。 这是我的第二个问题。 我不会处理软件中的任何信用卡交易,我更愿意Paypal做所有这些。 所以,在有人购买软件之后,我给了他们一个可以解锁软件的注册密钥。 我在这里首先关注的是,拥有此注册密钥的任何人都可以解锁该软件。 我怎么能限制这个? 想法?

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

编辑:我只是想回到这篇文章并更新它以提及我在评估TrueLicense和License3j之后,我选择使用TrueLicense。 我仍然在弄清楚如何使用它,因为文档并不那么容易。 我正在尝试研究这个样本,希望我能尽快为我的应用程序做好准备。

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

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

  • 软件许可证服务器,每当客户购买软件副本时生成新的软件许可证,以及
  • 软件许可证客户端,是嵌入Java / Swing客户端应用程序以安装和validation许可证的代码。

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

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