您在哪里存储特定于用户和特定于计算机的J2SE应用程序的运行时配置数据?
(例如,Windows上的C:\Users\用户名\AppData\Roaming和Unix上的/home/username )
如何以独立于平台的方式在文件系统中获取这些位置?
发布于 2008-10-11 17:44:10
这取决于您的J2SE应用程序类型:
主目录可执行JAR文件(非常简单):使用user.home System property查找
,您有配置(不完全确定如何在Vista中访问这些棘手的内容
所有这些方法在谨慎使用时都是操作系统中立的--使用正确的separatorChar。
发布于 2008-10-11 19:33:52
首先是格式:
)的更复杂的配置。我建议你至少了解一下Spring -即使你决定不使用它,它也包含了许多值得了解的想法。如果您决定使用自己的XML配置,我建议您使用带有定制序列化选项的XStream,或者如果您只需要解析一些XML,那么可以看看XOM。顺便说一句,Spring还允许插入定制的XML配置语言,但它是一个relatively complex task。XML配置最适合用于更复杂的“内部”配置,这些配置不会被end user.
一般来说,根据您的应用程序场景,使用prefs API可能是好事,也可能是坏事。
关于prefs的文件布局,它再次取决于您的应用程序。一个通用的建议是:
这说明了一些管理配置的标准技术。您可以使用不同的库和工具来实现它们,从原始JRE开始,添加Spring/Guice,或者使用完整的J2EE容器(可能带有嵌入式Spring)
管理配置的其他方法包括:
使用multiple base directories运行多个应用程序实例的
发布于 2008-10-11 17:46:46
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
https://stackoverflow.com/questions/194349
复制相似问题