java - 如何保存 Eclipse Natures 项目的自定义对象?

标签 java eclipse eclipse-rcp

我正在开发一个具有自定义项目性质的 Eclipse 插件。我需要将有关我的项目的一些自定义信息保存到工作区中。例如,我的项目必须使用几个数据库连接信息,这些信息位于 List<DbConfig> 。以下是DbConfig类:

public class DbConfig {
    private String dbName;
    private String connectionString;
    private String username;
    private String password;
    //... getters and setters
}

我需要这样的想法,但想将其放入首选项对象类型:

IProject project =  ... get project from selection or something
IScopeContext context = new ProjectScope(project);
Preferences projectPreferences = context.getNode("your nature id");
projectPreferences.put(key, value);
projectPreferences.flush();

我应该将该列表和其他一些首选项放置在哪个对象中?

最佳答案

您无法在首选项存储中存储对象。

您可以在插件的“状态位置”中保存您喜欢的任何数据。

使用以下方式获取状态位置:

Bundle bundle = ... your plugin bundle

IPath path = Platform.getStateLocation(bundle);

返回的 IPath 值将位于工作区元数据区域中。

您可以为每个项目使用单独的文件。

您可以使用以下方式获取您的 bundle :

Bundle bundle = FrameworkUtil.getBundle(getClass());

Bundle bundle = Platform.getBundle("your plugin id");

关于java - 如何保存 Eclipse Natures 项目的自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590331/

相关文章:

java - OnClickListener 和表格布局

android - 如何禁用 Android 对特定标签的内部日志记录(例如 AbsListView、GestureDetector、endeffect)

java - eclipse :java.lang.UnsatisfiedLinkError

java - 使用处理程序在 eclipse 4.x 中打开 eclipse 3.x View

java - Windows下Eclipse SWT中使用64位XulRunner

java - OSGi 服务架构 : creation of service at request of consumer

java - 使用 Eclipse 的 Maven/Gradle 工作覆盖示例

java - 如何将 mx4j httpadaptor 集成到 servlet 中,以便无需使用 ip 和端口启动另一台服务器?

Java - 用于搜索的正则表达式

java - 是否可以在不使用命令行的情况下在 jar 文件中打开控制台?