创建一个只运行一次的java应用程序

时间:2013-03-25 16:27:00

标签: java jar copy-protection runonce

我必须使用满足以下功能的java应用程序创建jar

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

总结我希望防止重置曾经启动的应用程序,以限制应用程序的非法重用。

现在我想到如何实现这个目标:

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

关于如何实现这一目标的任何建议/想法?

更新

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

1 个答案:

答案 0 :(得分:1)

任何能够删除二进制文件的用户,如果有足够的时间,也可以还原jar中所做的任何更改。当应用程序的唯一现有部分掌握在用户手中时,您将无法阻止对其进行更改。

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