我想在运行时清除Eclipse e4缓存(.metadata
目录)。
有很多帖子可以通过在运行配置中设置复选框来清除缓存,但是在清除代码中的缓存方面我找不到任何东西。
与编写自己的方法相比,我更喜欢使用已经编写的方法(如果有的话)。
如果我要自己执行此操作,那么我将在生命周期管理器中的@PostContextCreate
期间执行此操作。
有没有一种方法可以帮我做到这一点,还是应该只删除缓存目录?
更新 这是我要解决的问题。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment
答案 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 文件夹可能会损坏用户数据:首选项,启动配置,谁又知道什么-这取决于特定的插件实现。
您的更新也可能包含带有新服务和扩展名的新捆绑包和片段。 并且用户可以重新排列视图并执行工作台模型所保留的其他功能。
=>
删除工作台模型不能解决所有问题,请考虑以下因素:
更新后重新启动,以确保所有新的捆绑软件/扩展/服务都已应用Howto restart an e4 RCP application