7

我的 Eclipse RCP 应用程序需要一个包含一些信息的配置文件才能连接到远程数据库。存储此配置文件的最佳位置在哪里?

我可以为此目的使用默认配置目录(通常存储“config.ini”的位置)吗?如果是这样,我如何以编程方式将 File 实例获取到该位置?我还注意到这个目录在我的 Eclipse IDE 中不存在。

谢谢。

4

5 回答 5

5

与往常一样,您有多种选择,具体取决于您的要求。

  • 使用运行时首选项通过合适的 PreferenceInitializer 存储在 PreferenceStore 中。相当大而广泛的 API,其中包含了很多想法。默认情况下,首选项不会向用户或管理员公开,因此您需要做一些工作来公开首选项页面或写入属性文件。

对于不太高级/较少的工作,特别是如果您无权访问 eclipse 首选项(例如服务器端 OSGi):

  • 在 RCP.ini 中设置为系统属性。启动后用户不可更改,需要访问 RCP.ini (eclipse.ini) 文件,这可能是可能的,尤其是在您没有贡献 IDE 的情况下。
  • 设置为系统属性,作为快捷方式中的参数。取决于使用快捷方式的用户。安装时需要生成专门的快捷方式。

如果文件系统的可访问性真的很重要,那么我会考虑使用上述方法之一来设置etc目录,并让您的捆绑包在etc目录中生成默认属性文件(如果它们在首次使用时不存在)。这本质上是滚动您自己的首选项商店,因此如果您确实有访问首选项捆绑包,那么您最好这样做。这个相当古老的用户设置常见问题解答也可能会有所帮助。

我确实记得 Erich Gamma(如四人组和 JDT 技术负责人)的一次采访,他说大约有七种不同的偏好机制,他从来不知道该使用哪一种。

于 2009-02-17T13:22:28.590 回答
2

正如已经指出的,Preferences API 是值得一看的。还有适用于将用户名和密码加密存储在磁盘上的 Secure Preferences API。

另一种选择是使用“org.eclipse.osgi.service.datalocation.Location”OSGi 服务。这提供了对不同可用位置的访问。

第三种选择是在“config.ini”中定义一个系统属性,该属性使用占位符指向包含您的连接信息的文件:“my.connection.settings=@config.dir/mysettings.ini”。'@config.dir' 是一个占位符,它被替换为配置目录的实际路径。

于 2010-03-29T08:20:39.470 回答
1

看看资源插件 - 可能会给你你正在寻找的东西:

http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/resInt_filesystem.htm

于 2009-02-17T03:33:23.797 回答
0

通常,我喜欢将配置文件隐藏在“bin”目录中,或者不在根目录中的某个地方。您可能应该将它保存在项目的子目录中,这样您就不会弄乱系统上的一些随机位置。如果您需要获取文件的句柄,您可以这样做:

File configFile = new File("./bin/remoteDbConfig.ini");

然后,如果它是一个真正的 ini 文件,您可以使用Properties.load()来加载和使用 ini 文件中的值。

您还可以使用 Preferences API 来存储远程连接所需的数据。

于 2009-02-17T03:32:43.063 回答
0

要获取配置目录的文件位置,请运行:

新的 org.eclipse.core.runtime.preferences.ConfigurationScope().getLocation().toFile();

于 2009-02-17T15:38:07.097 回答