java - 如何制作我们软件的试用版

标签 java licensing trialware

我尝试制作我们软件的试用版。但我无法正确地做到这一点。当我的系统中的时钟改变时,它不起作用。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar expiredate = Calendar.getInstance();

try {
    Date date = sdf.parse("24/06/2015");
    expiredate.setTime(date);
    if (Calendar.getInstance().after(expiredate)) {
        JOptionPane.showMessageDialog(null, "Sorry your software has expired", "Expire",
            JOptionPane.INFORMATION_MESSAGE);
        System.exit(0);
    }
 } catch(ParseException e) {
    // ...
 }

最佳答案

您必须决定要花费多少精力。如果您的应用程序在客户端系统上运行(这意味着:它不需要连接到中央服务器)...那么您的选择非常有限。

当然,您的应用程序可以保存日期/时间戳......但是当人们开始篡改系统时钟时,这将无济于事。

长话短说:您应该在“易于实现;但可能容易规避”和“难以实现;因此可能很容易出错”之间取得平衡。换句话说:请记住,这种“许可证检查功能”可能会使您的潜在客户很难使用该软件。或者“更糟糕”:您花费大量时间来解决这个问题的一些“出色的安全解决方案”,并且在实现它时,您在软件中添加了各种错误。不要低估找到一个积极的用户无法破解的解决方案所需的努力......

最终建议;尝试不同的方法:专注于为您的应用程序创建出色用户体验(但可能功能集有限)。只要让您的客户相信您的应用程序值得付费即可;并且不提供“试用许可证”;但免费的“试用版”功能比真实产品少。

关于java - 如何制作我们软件的试用版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023530/

相关文章:

dll - MS-RL 商业应用

java - 第一个 android/java 教程中的问题

java - AdMob 窃取了 3 个像素?

java - Eclipse:无法执行dex:多个dex文件定义Landroid/support/v4/

ios - 为 iOS 应用程序实现计时版的正确方法

java - 如何创建 Java 程序的试用版

c++ - 从 Internet 检索时间(绕过 PC 时钟)?

java - Android 绘制实际公交路线折线

licensing - 如何将许可证归属于所使用的库,而不会让我的软件看起来像在该许可证下?

Delphi Xe2 许可