如何在JAR\Java项目中存储值

如何在JAR\Java项目中存储值,java,jar,store,Java,Jar,Store,我已经找了一段时间了,但还没有找到任何结论 我有一个我想要运行的java项目(桌面应用程序),我希望在第一次启动时,用户输入一些值,这些值将永远保留各自变量的值,即当我重新运行jar文件时,将显示更改的值,而不是初始打包的值 我尝试使用xml将文件存储在jar中并对其进行读写,但没有成功。所以现在我选择这样做 但是,如果有更简单的方法,请告诉我,这是我一个更大项目的初始步骤之一,我拒绝继续,直到我解决这个问题。你不应该在罐子里写东西。我建议您将用户输入的值存储在该用户目录的某个位置(您可以使用S

我已经找了一段时间了,但还没有找到任何结论

我有一个我想要运行的java项目(桌面应用程序),我希望在第一次启动时,用户输入一些值,这些值将永远保留各自变量的值,即当我重新运行jar文件时,将显示更改的值,而不是初始打包的值

我尝试使用xml将文件存储在jar中并对其进行读写,但没有成功。所以现在我选择这样做


但是,如果有更简单的方法,请告诉我,这是我一个更大项目的初始步骤之一,我拒绝继续,直到我解决这个问题。

你不应该在罐子里写东西。我建议您将用户输入的值存储在该用户目录的某个位置(您可以使用
System.getProperty(“user.home”)
获取用户目录的路径)。然后,您可以检查用户目录中的文件是否存在-如果存在,请使用它,如果不存在,请使用JAR中包含默认值的文件(或要求用户输入值)。

如果您只有几个值要存储,而不是一个大文件,那么
首选项
就是为此设计的解决方案

Preferences prefs = Preferences.userRoot().node("/com/yourcompany/yourprogram");

int value = prefs.getInt("key", -1);
if(value == -1) {
   prefs.put("value", Integer.parseInt(
             JOptionPane.showInputDialog("Enter value:"));
   prefs.flush();
}

哇,谢谢你快速的回答。如果我告诉你我没有考虑过的话,那我就是在骗你。。。我选择不这样做的唯一原因是将所有内容打包到一个文件中,不喜欢隔离!好的,这样如何,是否可以在运行时更新变量,然后重新启动后,变量仍会更改?是的,事实上,我要存储的值很少,实际上它们是首选项,你看,我希望应用程序与MySQL服务器通信,所以我希望用户使用“服务器地址”和“服务器端口”建立连接,这是我希望存储在JAR中的唯一两个变量。你提到的这个偏好,是java中的一个类?。。。嗯,我要查一下:)谢谢你们是明星!谢谢大家!嘘,你知道我一直在想这个问题,最终我只想用xml的方式来做,但这看起来非常乏味。你已经解决了失眠问题!:)谢谢你们的帮助!p、 美国甚至不知道有一个偏好班。好主意!:)解决了的!哦,以防万一有人路过。。。如果我们有大量的数据,那么我们能做什么?