【问题标题】:How To Store Values Within JAR \ Java Project如何在 JAR \ Java 项目中存储值
【发布时间】:2012-02-11 01:32:15
【问题描述】:

我已经四处寻找了一段时间,并没有真正找到任何结论。

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

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

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

【问题讨论】:

    标签: java jar store


    【解决方案1】:

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

    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.s.甚至不知道有一个偏好类。好东西! :) 解决了!哦,以防万一其他人突然出现... PREFERENCES TUTORIAL
    • 如果我们有大量数据,我们能做什么?
    【解决方案2】:

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

    【讨论】:

    • 哇,感谢您的快速答复。如果我告诉你我没有考虑过,那我就是在骗你……我选择不这样做的唯一原因是将所有内容打包在一个文件中,不喜欢隔离!好的,这个怎么样,是否可以在运行时更新变量,然后一旦重新启动,变量仍然保持不变?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2020-05-30
    相关资源
    最近更新 更多