在运行时清除缓存-Eclipse e4

时间:2019-06-27 11:31:49

标签: java eclipse-rcp e4

我想在运行时清除Eclipse e4缓存(.metadata目录)。

有很多帖子可以通过在运行配置中设置复选框来清除缓存,但是在清除代码中的缓存方面我找不到任何东西。

与编写自己的方法相比,我更喜欢使用已经编写的方法(如果有的话)。

如果我要自己执行此操作,那么我将在生命周期管理器中的@PostContextCreate期间执行此操作。

有没有一种方法可以帮我做到这一点,还是应该只删除缓存目录?

更新 这是我要解决的问题。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment

2 个答案:

答案 0 :(得分:0)

要在运行时清除缓存,我已覆盖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();  

我使用反射,因为父方法是私有的。最好这样做而不是自己编写代码来获取文件,因为这样可以确保始终获得正确的位置。

答案 1 :(得分:0)

首先,删除 .metadata 文件夹可能会损坏用户数据:首选项,启动配置,谁又知道什么-这取决于特定的插件实现。

您的更新也可能包含带有新服务和扩展名的新捆绑包和片段。 并且用户可以重新排列视图并执行工作台模型所保留的其他功能。

=>

删除工作台模型不能解决所有问题,请考虑以下因素: