1

我必须创建一个jar具有以下功能的 java 应用程序:

  • jar 中包含 xml 数据,这些数据在应用程序第一次启动时被读取。随着应用程序的每次连续启动,数据都会从动态创建的二进制文件中加载。
  • 客户不应该能够将应用程序重置为其主要状态(例如,如果二进制文件由于某种原因被删除,应用程序应该无法再次运行并给出错误消息)。
  • 所有这一切都不应该取决于它运行的操作系统(这意味着例如在 Windows 中设置注册表项不会完成这项工作)

总结一下,我想防止重新启动一次启动的应用程序,以限制应用程序的非法重用。

现在谈谈我关于如何实现这一点的想法:

  • 在第一次运行时从 jar 中删除 xml(到目前为止,我了解到不可能让应用程序编辑它自己的 jar。这是真的吗?)
  • 在第一次运行时永久设置 jar 中的变量/属性/设置/任何内容(是否可能)

关于如何做到这一点的任何建议/想法?

更新:

我没有找到针对这个确切问题的解决方案,但我找到了一个简单的解决方法:连同我的软件一起,我发布了一个特定文件,该文件在程序第一次启动后会被更改。当然,如果有人保留原始文件的副本,他总是可以替换它并重新开始。

4

1 回答 1

1

任何能够删除二进制文件的用户,只要有足够的时间,也能够恢复在 jar 中所做的任何更改。当应用程序的唯一现有部分在用户手中时,您将无法阻止对其进行更改。

您可以轻松地存储原始 jar 的备份、制作副本、将其用于一次运行、删除、复制原始 jar 等。您将需要用户机器之外的某种机制,例如激活服务器。用户获得一个代码来激活帐户,并且不能再次使用该代码。

于 2013-03-25T16:29:50.157 回答