【发布时间】:2013-03-25 16:26:59
【问题描述】:
我必须创建一个 jar 和一个满足以下功能的 java 应用程序:
- jar 中包含 xml 数据,这些数据在应用程序第一次启动时被读取。每次连续启动应用程序时,都会从动态创建的二进制文件中加载数据。
- 客户不应将应用程序重置为其主要状态(例如,如果二进制文件因某种原因被删除,应用程序应无法再次运行并给出错误消息)。
- 所有这些都不应依赖于它所运行的操作系统(这意味着例如在 Windows 中设置注册表项将无法完成这项工作)
总结一下,我想防止曾经启动的应用程序被重置,以限制应用程序的非法重用。
现在说说我的想法:
- 在第一次运行时从 jar 中删除 xml(到目前为止,我了解到不能让应用程序编辑它自己的 jar。这是真的吗?)
- 在第一次运行时永久设置 jar 中的变量/属性/设置/任何内容(可能)
关于如何实现这一点的任何建议/想法?
更新:
我没有找到解决这个确切问题的方法,但我找到了一个简单的解决方法:连同我的软件一起发布了一个特定文件,该文件在程序第一次启动后会发生更改。当然,如果有人保留原始文件的副本,他可以随时替换它并重新开始。
【问题讨论】:
-
对此没有完美的解决方案。每次运行之前,总有人可以保存备份并从备份中恢复。
-
我知道没有完美的解决方案,但我想让它变得更难一些。我也知道,在运行一次之前复制 jar 会使整个事情变得毫无意义。但最好防止重置已经运行的 jar
标签: java jar copy-protection runonce