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

标签 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

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

最佳答案

此异常是在您获取 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

关于java - Java项目中保存配置文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636702/

相关文章:

java - Appium:如何在appium中搜索后点击第一个链接

java - 基于 Java 的 Web 应用程序的分析工具

linux - 在 Linux 上中止阻塞读取

c - 使用 txt 文件输入过滤 C 中的数据列

c# - 在 app.config 的 configSection 中避免版本特定信息

java - 如何获取/打印CATALINA_OPTS

java - 将用 Java 编写的枚举转换为 C#

node.js - 当前写入文件时如何处理 readFile

Grails - 可以使用 config.groovy 禁用作业

java - 将本地值作为作业参数传递给作业,同时仍使用 JobParametersIncrementer