Jam*_* P. 15 java desktop-application self-destruction
沿着"这条磁带将在五秒内自毁.好运,吉姆" ......
一旦达到预设的使用时间或其他条件,应用程序是否可以删除自身(或者它的可执行包装形式)?
或者,可以使用哪些其他方法使应用程序无用?
这里的目标是让测试版过期,邀请用户获得更新版本.
有可能的.为了解决JAR文件上的锁定问题,您的应用程序可能需要生成一个后台进程,该进程在删除内容之前一直等待JVM退出.
但是,这不是防弹的.有人可以安装应用程序,然后将安装的文件和目录设置为只读,这样您的应用程序就无法自行删除.通过OS'es访问控制系统的用户(或他们的管理员)对创建和删除的文件有最终决定权.
如果您控制测试人员下载您的应用程序的位置,您可以使用自动构建系统(例如Jenkins),您可以每晚创建一个具有硬编码到期日期的新测试版本:
private static final Date EXPIRY_DATE = <90 days in the future from build date>;
Run Code Online (Sandbox Code Playgroud)
上述日期由构建过程自动插入
if (EXPIRY_DATE.before(new Date()) {
System.out.println("Get a new beta version, please");
System.exit(1);
}
Run Code Online (Sandbox Code Playgroud)
将其与签名和密封的罐子混合,以便在反编译字节码方面设置障碍并提供不包含该代码的替代实现,您可以分发代码的时间到期beta.
自动构建系统可以配置为自动将beta版本上载到托管下载版本的服务器.
| 归档时间: |
|
| 查看次数: |
9040 次 |
| 最近记录: |