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

在Java项目中保存配置文件的位置,java,io,config,Java,Io,Config,所以我需要客户端来存储服务器地址等。。。本地,也有它加密,但该文件应保存在哪里,因为我已经尝试把它放在程序文件文件夹,但我得到一个错误。它在mac电脑上运行良好,但在windows上不起作用 /** * Gets the path to the configuration file * dependent on the operating system. * * @return File Path {@code File} */ pu

所以我需要客户端来存储服务器地址等。。。本地,也有它加密,但该文件应保存在哪里,因为我已经尝试把它放在程序文件文件夹,但我得到一个错误。它在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保存路径会出现此错误


如有任何建议,将不胜感激。谢谢。

此异常是否发生在获取Windows文件位置的行上,还是在以后某个时间?通常这种异常意味着您的代码被执行了不止一次,并且您得到了递归的重复调用,这最终会导致堆栈溢出

这里要做的第一件事是调试代码并查看此异常何时发生。一旦您隔离了代码,您就能够解决这个问题

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


您的异常由
createNewFile()
调用引发,该调用未显示在您发布的代码中。请包含导致错误的代码部分。是的,我的错,我添加了它。您是否尝试将.mkdirs()归档;在file.createNewFile()之前;是的,在用户输入信息之前,它会被反复调用。谢谢