我使用以下代码制作了无头蚀插件:
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没有返回我期望的那是所有首选项的根。
如何获得所有首选项?不仅是工作空间首选项或默认首选项,还是全部?
答案 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);