在Java项目中保存配置文件的位置

时间:2015-04-14 20:21:38

标签: java io config

所以我需要客户端在本地存储服务器地址等,并且还加密但是应该保存文件的位置,因为我已经尝试将其放在Program Files文件夹中但是我收到错误。它适用于Mac但不适用于Windows。

 /**
     * Gets the path to the configuration file
     * dependent on the operating system.
     * 
     * @return File Path {@code File}
     */
    public File getOSConfigurationPath () {

        File file;
        if (System.getProperty("os.name").startsWith("Windows")) {
            file = new File (System.getProperty("user.home") + "/Program Files/AutoSales/Configuration.txt");
        } else {
            file = new File (System.getProperty("user.home") + "/Library/Application Support/AutoSales/Configuration.txt");
        }

        return file;
    }

返回^^^^的文件使用它。

} else {
                file.createNewFile();
                System.out.println("New Config File Created");
            }

由于某种原因,Windows保存路径会出现此错误。

enter image description here

任何建议都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

此异常是否发生在获取Windows文件位置的行或稍后的某个时刻?通常这样的异常意味着你的代码被执行不止一次,你会得到递归重复调用,最终导致堆栈溢出。

这里要做的第一件事是调试代码并查看何时发生这种异常。隔离代码后,您就可以解决问题。

另一个注意事项 - 您在调用UI相关操作时使用 SwingUtilities.invokeLater(Runnable)吗?在处理Java Swing UI时,这是必须的。

http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable)

http://www.javamex.com/tutorials/threads/invokelater.shtml