您在哪里存储J2SE 应用程序的特定于用户和特定于机器的 运行时配置数据?
(例如, Windows 上的 C:\Users\USERNAME\AppData\Roaming</em> 和Unix 上的/home/username )
您如何以独立于平台的方式在文件系统中获取这些位置?
您在哪里存储J2SE 应用程序的特定于用户和特定于机器的 运行时配置数据?
(例如, Windows 上的 C:\Users\USERNAME\AppData\Roaming</em> 和Unix 上的/home/username )
您如何以独立于平台的方式在文件系统中获取这些位置?
先说格式:
一般来说,根据您的应用场景,使用 prefs API 可能是好事也可能是坏事。
关于首选项的文件布局,它再次取决于您的应用程序。一个通用的建议是:
这说明了一些用于管理配置的标准技术。您可以使用不同的库和工具来实现它们,从原始 JRE、添加 Spring/Guice 或使用完整的 J2EE 容器(可能使用嵌入式 Spring)
其他管理配置的方法是:
这取决于您的 J2SE 应用程序类型:
所有这些方法在小心使用时——使用正确的separatorChar——操作系统中立。
Java 在java.util.prefs.Preferences 中有一个专门用于执行此操作的库。
Preferences userPrefs = Preferences.getUserNodeForPackage(MyClass.class); // Gets user preferences node for MyClass
Preferences systemPrefs = Preferences.getSysteNodeForPackage(MyClass.class); // Gets system preferences node for MyClass
Preferences userPrefsRoot = Preferences.getUserRoot(); // Gets user preferences root node
Preferences systemPrefsRoot = Preferences.getSystemRoot(); // Gets system preferences root node
您可能想查看Resource Bundles。
对于用户特定的配置,您可以将配置文件写入“user.home”系统属性指向的文件夹。当然只能在那台机器上工作。
我用这个
字符串路径文件 = null; 如果(操作系统。包含(“赢”)){ pathFile = System.getenv("AppData"); }别的{ pathFile = System.getProperty("user.home"); }
我将我的应用程序的设置保存在这里 C:\Users\USERNAME\AppData\ 在其他平台上的 windows user.home (/home/USERNAME) 上