簡體   English   中英

Eclipse插件在調試時有效,但在安裝時無效

[英]Eclipse plugin works when debugging but not when installing

我編寫了一個Eclipse插件,它在任何文件或文件夾上顯示右鍵菜單選項(例如,在導航器視圖中)。 對於所選的每個文件(以及所選目錄中的每個文件),插件計算並顯示文件的MD5,SHA-1,SHA-256,SHA-384或SHA-512哈希值。 當我在開發時調試時,該插件工作正常。

如果我使用site.xml創建網站,將它放在我的服務器上,然后安裝到Eclipse(它安裝得很好),我看到菜單。 我可以計算並顯示所選文件的哈希值,但它不適用於所選文件夾。 代碼中沒有任何變化; 它總是在調試模式下工作,它在我安裝它時永遠不會起作用。

我的問題是:我該怎么調試呢? 起初,我認為Eclipse的workspace/.metadata/.log文件會提供一些線索,但不會輸出錯誤。 我甚至嘗試添加一些將文件寫入桌面的代碼,但該文件永遠不會被創建。 有沒有人知道發生了什么或我應該如何解決這個問題? 我以前從來沒有遇到過這么難的調試!

作為參考, https://github.com/gfairchild/eclipse-hasher是該項目。 所有源代碼都可以在那里查看(它可以作為Eclipse項目導入)。


答案最終涉及兩件事:

  1. 我在構建過程中沒有包含lib目錄。 我使用的依賴項(Apache Commons Codec)沒有包含在內,所以它當然不能運行。
  2. 在測試過程中,我曾嘗試手動將Hasher構建到eclipse / plugins中。 我錯誤地認為,如果我通過Eclipse界面卸載Hasher,則會刪除此文件。 事實並非如此。 所以在上個月,我已經將一個陳舊版本的Hasher加載到Eclipse中。 這令人非常沮喪。 那好吧。 學過的知識。

非常感謝所有提供幫助的人!

這可能是你第一次只測試您的插件在目標平台IFIle具體延伸和補充IFolder后,但沒有加載的更新插件到Eclipse,因為你並沒有增加插件的版本,並沒有與運行-clean (Eclipse需要重新加載你的插件)。

您的代碼假設ExecutionEvent中的值保持有效,直到您的線程運行,這可能不是這種情況。 execute方法中獲取事件所需的所有內容,並將它們傳遞給工作線程。

此外,而不是使用object instanceof IFileIFolder使用:

IFile file = (IFile)Platform.getAdapterManager().getAdapter(object, IFile.class);

IFolder

我看到你的包裝上有問題。 如果您通過任何zip軟件打開jar文件,您可以看到缺少lib和images文件夾。 您需要在build.properties文件中添加這些文件夾的條目。 您還需要將庫添加到類路徑(額外的類路徑條目)如果您在進行這些更改后構建插件,它理想情況下應該工作。

你的問題:“我的問題是:我該怎么調試呢?”

我的回答:“遠程調試”

您可能想要谷歌關於該主題,但我鼓勵您閱讀以下博客條目 ,當有人問我如何在第一次eclipse安裝中調試代碼時,我總是建議。 這樣做,你可以調試你的代碼,以防你的第一個eclipse安裝和你可能用來調試的第二個eclipse實例之間的環境有所不同(它們可能會有所不同,具體取決於你的目標平台設置和你的第二個實例啟動配置)。

注意:如果您的特定問題是與greg指出的線程相關的問題,那么在第一個實例安裝中調試代碼將是無用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM