我的 Eclipse RCP 应用程序需要一个包含一些信息的配置文件才能连接到远程数据库。存储此配置文件的最佳位置在哪里?
我可以为此目的使用默认配置目录(通常存储“config.ini”的位置)吗?如果是这样,我如何以编程方式将 File 实例获取到该位置?我还注意到这个目录在我的 Eclipse IDE 中不存在。
谢谢。
与往常一样,您有多种选择,具体取决于您的要求。
对于不太高级/较少的工作,特别是如果您无权访问 eclipse 首选项(例如服务器端 OSGi):
如果文件系统的可访问性真的很重要,那么我会考虑使用上述方法之一来设置etc
目录,并让您的捆绑包在etc
目录中生成默认属性文件(如果它们在首次使用时不存在)。这本质上是滚动您自己的首选项商店,因此如果您确实有访问首选项捆绑包,那么您最好这样做。这个相当古老的用户设置常见问题解答也可能会有所帮助。
我确实记得 Erich Gamma(如四人组和 JDT 技术负责人)的一次采访,他说大约有七种不同的偏好机制,他从来不知道该使用哪一种。
正如已经指出的,Preferences API 是值得一看的。还有适用于将用户名和密码加密存储在磁盘上的 Secure Preferences API。
另一种选择是使用“org.eclipse.osgi.service.datalocation.Location”OSGi 服务。这提供了对不同可用位置的访问。
第三种选择是在“config.ini”中定义一个系统属性,该属性使用占位符指向包含您的连接信息的文件:“my.connection.settings=@config.dir/mysettings.ini”。'@config.dir' 是一个占位符,它被替换为配置目录的实际路径。
看看资源插件 - 可能会给你你正在寻找的东西:
通常,我喜欢将配置文件隐藏在“bin”目录中,或者不在根目录中的某个地方。您可能应该将它保存在项目的子目录中,这样您就不会弄乱系统上的一些随机位置。如果您需要获取文件的句柄,您可以这样做:
File configFile = new File("./bin/remoteDbConfig.ini");
然后,如果它是一个真正的 ini 文件,您可以使用Properties.load()来加载和使用 ini 文件中的值。
您还可以使用 Preferences API 来存储远程连接所需的数据。
要获取配置目录的文件位置,请运行:
新的 org.eclipse.core.runtime.preferences.ConfigurationScope().getLocation().toFile();