我必须创建一个具有以下功能的java应用程序的jar
:
- 在jar中打包了xml数据,这些数据是在应用程序第一次启动时读取的。每次连续启动应用程序时,数据都会从动态创建的二进制文件中加载。
- 客户不应该能够将应用程序重置到其主要状态(例如,如果二进制文件因某种原因被删除,应用程序应该无法再次运行并给出错误消息)。
- 所有这些都不应该依赖于它所运行的操作系统(这意味着例如在windows中设置注册表项不会完成这项工作)
现在谈谈我对如何实现这一目标的看法:
- 在第一次运行时从jar中删除xml(到目前为止,我的理解是不可能让应用程序编辑它自己的jar)。是真的吗?)
- 在第一次运行时永久地在jar中设置一个变量/属性/设置/任何东西(这是可能的)
关于如何实现这一点,有什么建议/想法吗?
更新:我没有找到这个确切问题的解决方案,但我发现了一个简单的变通方法:随着我的软件,我发布了一个特定的文件,该文件在程序第一次启动后被更改。当然,如果有人保留了原始文件的副本,他可以随时替换它并重新开始。
任何能够删除二进制文件的用户,只要有足够的时间,也能够恢复在jar中所做的任何更改。当应用程序的唯一现有部分在用户手中时,您将无法阻止对其进行更改。
你可以很容易地存储原始jar的备份,制作一个副本,只运行一次,删除,复制原始jar,等等。您可能需要用户机器之外的某种机制,比如激活服务器。用户获得一个激活帐户的代码,并且不能再次使用该代码。