如何限制java程序只执行N次

如何限制java程序只执行N次,java,Java,我想制作一个java程序,它只能运行特定的次数。e、 G2、5、10等。之后它必须抛出异常 不允许为此使用任何文件或数据库。有人给了我一个注册的提示!但我不知道怎么用它来做这个。 关于这一点,请帮助我…您可以使用java首选项(windows上的注册表): 您可以在此处找到一些示例用法: 如果应用程序不可用。有一个GUI,可以使用JavaWebStart启动并使用PersistenceService。这是一个小盒子。代码可供下载 编辑: PersistenceService应该在任何有

我想制作一个java程序,它只能运行特定的次数。e、 G2、5、10等。之后它必须抛出异常

不允许为此使用任何文件或数据库。有人给了我一个注册的提示!但我不知道怎么用它来做这个。
关于这一点,请帮助我…

您可以使用java首选项(windows上的注册表):

您可以在此处找到一些示例用法:


如果应用程序不可用。有一个GUI,可以使用JavaWebStart启动并使用PersistenceService。这是一个小盒子。代码可供下载

编辑:
PersistenceService应该在任何有JRE的机器上工作,而不仅仅是Windows。

这个问题是否可以解决取决于“任何文件或数据库”的含义

  • 根据您的观点,Windows注册表是一种文件/数据库。当然,在重新启动期间,值保留在注册表中的唯一原因是注册表更改被写入磁盘

  • 您可以将状态(例如应用程序已运行的次数计数)移动到本地计算机上的其他服务。但再一次,除非服务将该状态保存到磁盘(或其他稳定的存储介质)中,否则在本地计算机重新启动时,该状态将丢失

  • 您可以将状态移动到远程机器上的服务,但如果未保存到光盘等,则可能会再次丢失状态。此外,您可能无法在需要状态时联系该远程服务;e、 g.启动应用程序时

  • 您可以在没有光盘的情况下将状态复制到许多远程服务,但网络故障(或用户从网络拔出)将阻止您访问状态

总之,如果您不能在本地写入光盘(或nvram、磁带等),则无法保证计数器不会重置,并且在需要时可以使用。因此,您不能保证应用程序的运行次数不会超过允许的次数


我想象你正试图想出一些用户无法颠覆的有限使用方案;e、 从文件/数据库/任何计数器中删除内容。不幸的是,除非您实际控制应用程序运行的硬件和操作系统,否则无法阻止有人破坏机器本身上存储的任何计数器。任何具有“root”或完全管理员权限,或具有物理访问权限的人最终都可以更改机器本身上的任何数据


最好是建立到远程服务器的安全连接,并使用该连接保存使用计数器。但即使这样做也是徒劳的,因为有动机的人可以逆向设计应用程序的关键部分,并禁用检查计数器的代码。

,尽管这听起来像是一种复制保护的尝试,但您可能需要考虑自修改代码。在Java中有一个关于这个主题的有趣讨论:

这是只针对Windows的吗?因为很明显,Linux或OS XSounds上没有像拷贝保护方案那样的注册表。你注定要失败。是的,注册表是windows文件!这可能是非Windows平台上的文件。但是,应用程序必须将状态存储在某个位置!是的,我看不到其他解决方案!亲爱的!你能给我发个简单的代码吗?a对此非常感谢。我能看到的唯一其他解决方案是根据安装它的系统生成GUID,并从远程服务器请求运行权限。但这将依赖于网络连接。java注册表接口在这方面对我不再有帮助了吗?