Eclipse:无头蚀插件可导出首选项

时间:2018-08-03 22:43:16

标签: eclipse eclipse-plugin

我使用以下代码制作了无头蚀插件:

public class Application implements IApplication {

    @Override
    public Object start(IApplicationContext context) throws Exception {
        System.out.println("ok this is it!");
        IPreferencesService service = Platform.getPreferencesService();
        try {
            FileOutputStream fout = new FileOutputStream(new File("c:/temp/ohno.epf"));
            service.exportPreferences(service.getRootNode(), fout, null);

        }catch(Exception e)
        {

        }
        return null;
    }

但是为什么

service.exportPreferences(service.getRootNode(), fout, null);

写一个空文件?我期望的行为是与通过File-> Export [Preferences]菜单导出首选项相同。一定是service.getRootNode没有返回我期望的那是所有首选项的根。

如何获得所有首选项?不仅是工作空间首选项或默认首选项,还是全部?

1 个答案:

答案 0 :(得分:1)

运行此代码时,Eclipse将为运行创建一个新的工作区。最初,此工作空间中的所有首选项都设置为默认值。 exportPreferences方法不会导出设置为默认值的首选项-因此您不会导出任何内容。您将需要在此工作区中设置一些首选项来测试此代码。

还请注意,org.eclipse.core.runtime.Preferences类具有帮助程序方法来执行此导出。您可以将代码替换为以下调用:

public static void exportPreferences(IPath path) throws CoreException

要获取“配置”范围,请使用:

IEclipsePreferences node = (IEclipsePreferences)service.getRootNode().node(ConfigurationScope.SCOPE);