我想在运行时清除Eclipse E4缓存(.metadata
目录(。
通过在运行配置中设置复选框来清除缓存的帖子,但是在清除代码中的缓存时找不到任何内容。
我宁愿使用已经编写的方法(如果有的话(,与写我的方法相比。
如果我自己要这样做,那么我将在生命周期经理中的@PostContextCreate
期间这样做。
是否有一种方法可以为我执行此操作,或者我应该删除缓存目录?
更新这是我想解决的问题。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=430090#add_comment
要在运行时清除缓存,我已经覆盖了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();
我将反射作为父方法是私有的。最好做到这一点,而不是编写代码以自己获取文件,因为它可以确保我始终获得正确的位置。
首先,删除 .metadata 文件夹可能会损坏用户数据:偏好,启动配置,谁知道还有什么 - 这取决于特定的插件实现。
您的更新可能包含带有新服务和扩展名的新捆绑包和片段。用户可以重新排列视图,并使用Workbench模型执行其他事情。
=>
Workbench模型的删除将无法解决所有问题,请考虑以下内容:
-
更新后重新启动,以确保应用所有新的捆绑包/服务/服务如何重新启动E4 RCP应用程序
-
加载后使用模型处理器来操作模型