我正在用Java开发一个小游戏,我将它作为单个Jar文件发送。我想在某个地方存储该游戏的高分/最佳时间。我想将它存储在应用程序本身(在Jar中),而不是将它存储在一个单独的文件中,这样它就不会丢失。这有可能吗?如果是这样,如何以编程方式进行。
答案 0 :(得分:7)
Java没有为您提供修改当前运行的JAR的工具。如果你真的想这样做,你必须自己猜测JAR的位置(它可能驻留在只读文件系统上),并修改它,就像修改任何存档文件一样。
底线:这是一个非常糟糕的主意,不要这样做!有关更合理的解决方案,请参阅this question。
答案 1 :(得分:2)
没有什么是不可能的,但将它存储在jar文件中会使它变得非常复杂。当jar由另一个用户拥有时,您可能还会遇到诸如“Permission Denied”错误之类的不良副作用。当病毒扫描程序看到jar文件无故改变时可能会感到紧张......
我会期待Preferences API存储此类信息。
答案 2 :(得分:1)
我认为尝试在jar文件中存储任何内容都是一个坏主意。另一个选择是为玩游戏的人提供基于网络的服务。游戏可以通过Web服务连接到您的托管服务器,然后集中存储所有内容。不确定它是否正是你想要的,但这只是一个想法。它还可以让人们相互竞争。
答案 3 :(得分:0)
Java JAR文件是ZIP-Archive,因此您可以使用标准ZIP-Tools访问它,只需提取一个hisghscores.txt文件,修改它然后再将其打包。