2 回答

TA贡献1854条经验 获得超8个赞
为了在运行时清除缓存,我覆盖了ResourceHandler并将其添加到loadMostRecentModel.
final Method m = getClass().getSuperclass().getDeclaredMethod("getWorkbenchSaveLocation", new Class<?>[] {});
m.setAccessible(true);
final File workbenchSaveLocation = (File) m.invoke(this, (Object[]) null);
workbenchSaveLocation.delete();
我使用反射,因为父方法是私有的。最好这样做而不是自己编写代码来获取文件,因为它可以确保我始终获得正确的位置。

TA贡献1893条经验 获得超10个赞
首先,删除.metadata文件夹会损坏用户数据:首选项、启动配置,谁知道还有什么——这取决于特定的插件实现。
此外,您的更新可能包含带有新服务和扩展的新捆绑包和片段。并且用户可以重新排列视图并执行工作台模型坚持的其他事情。
=>
删除工作台模型并不能解决所有问题,请考虑以下事项:
更新后重新启动以确保应用所有新的捆绑包/扩展/服务如何重新启动 e4 RCP 应用程序
使用模型处理器在加载后操作模型http://blog.vogella.com/2010/10/26/processors-e4-model/
添加回答
举报