Java 把东西存到罐子里

Java 把东西存到罐子里,java,serialization,jar,settings,save,Java,Serialization,Jar,Settings,Save,我有一个java应用程序,需要保存和加载用户设置。我想将它们保存在JAR文件中的一个文件中,如何实现这一点?这是不可能的。而是考虑使用它是为了这个目的而设计的。另请参见。这不是明智的做法 JAR文件基本上只是一个ZIP文件。要重写它的内容,您需要完整地提取它们,根据需要进行更改,然后将它们写入一个新文件以替换旧文件 如果要执行此操作的程序与JAR文件中包含的程序相同,则由于文件在执行过程中受到写保护,因此无法执行此操作 最好建议您将配置存储在其他位置。这不是像其他人所说的那样存储首选项 如果您有

我有一个java应用程序,需要保存和加载用户设置。我想将它们保存在JAR文件中的一个文件中,如何实现这一点?

这是不可能的。而是考虑使用它是为了这个目的而设计的。另请参见。

这不是明智的做法

JAR文件基本上只是一个ZIP文件。要重写它的内容,您需要完整地提取它们,根据需要进行更改,然后将它们写入一个新文件以替换旧文件

如果要执行此操作的程序与JAR文件中包含的程序相同,则由于文件在执行过程中受到写保护,因此无法执行此操作


最好建议您将配置存储在其他位置。

这不是像其他人所说的那样存储首选项

如果您有这样做,那么:

  • 从以下代码中找到JAR:

  • 取消将内容保存到临时文件夹

  • 在临时文件夹中修改

  • 将Jar temp文件夹添加到新的Jar文件中


  • 除了Kris所说的,大多数安全专家会告诉你,允许最终用户应用程序修改自己的代码通常是一种糟糕的安全实践。你要的东西需要这个

    我想将它们保存在.jar中的一个文件中。为什么要在每次用户pref更新时更新jar文件?我想集成用户特定的设置,以便轻松共享我的应用程序的当前状态。这将是一个简单的文本文件,但它不应该在文件系统中的某个地方,而是在程序本身中。很好,但他不想修改代码,他想找到一种方法,将新数据打包到可以在Jar中引用的外部文件中,这是一件非常方便的事情。