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/
添加回答
舉報