我開發一個Eclipse插件,其中,在啓動時,需要經過所有工作區中開放的Java項目,獲得那些每類路徑解析並用它做什麼通知。我到目前爲止的代碼看起來是這樣的:時得到一個Eclipse IJavaProject的類路徑可以解決
public void start(BundleContext context) throws Exception {
for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
if (project.isOpen() && project.getNature(JavaCore.NATURE_ID) != null) {
IJavaProject javaProject = JavaCore.create(project);
for (IClasspathEntry cpe : javaProject.getResolvedClasspath(true)) {
// Do something with cpe
}
}
}
}
的問題是,在工作區IJavaProject.getResolvedClasspath(true)
一些項目最初將返回一個空的類路徑。我的猜測是這些項目尚未完全加載。
我也有一個IResourceChangeListener
來監聽項目的開/關和做同樣的事情,什麼是在啓動時完成。當我關閉並重新打開一個項目時,最初有一個空的類路徑IJavaProject.getResolvedClasspath(true)
將返回預期的類路徑。
是我的假設是正確的,這些項目還沒有被完全加載了嗎?我應該如何重新設計這個以在我的插件啓動時爲所有Java項目獲得正確解析的類路徑?