我编写了一个Eclipse插件,它在任何文件或文件夹上显示右键菜单选项(例如,在导航器视图中)。对于所选的每个文件(以及所选目录中的每个文件),插件计算并显示文件的MD5,SHA-1,SHA-256,SHA-384或SHA-512哈希值。当我在开发时调试时,该插件可以正常工作。
如果我使用site.xml创建网站,将它放在我的服务器上,然后安装到Eclipse(它安装得很好),我看到菜单。我可以计算并显示所选文件的哈希值,但只有对所选文件夹不起作用。代码中没有任何变化;它总是在调试模式下工作,并且在我安装时它永远不会工作。
我的问题是:我该如何调试?起初,我认为Eclipse的workspace/.metadata/.log
文件会提供一些线索,但不会输出错误。我甚至尝试添加一些将文件写入桌面的代码,但该文件永远不会被创建。有没有人知道发生了什么或我应该如何解决这个问题?我以前从来没有遇到过这么难的调试!
作为参考,https://github.com/gfairchild/eclipse-hasher是项目。所有源代码都可以在那里查看(它可以作为Eclipse项目导入)。
答案最终涉及两件事:
lib
目录。我没有使用我使用的依赖项(Apache Commons Codec),所以它当然不会运行。非常感谢所有提供帮助的人!
答案 0 :(得分:2)
您可能首先使用IFIle
特定扩展名在目标平台上测试了插件,稍后添加了IFolder
,但更新的插件未加载到Eclipse,因为您没有增加该插件的版本并没有使用 -clean 运行它(Eclipse需要重新加载你的插件)。
答案 1 :(得分:1)
您的代码假设ExecutionEvent
中的值保持有效,直到您的线程运行,这可能不是这种情况。在execute
方法中获取事件所需的所有内容,并将它们传递给工作线程。
而不是使用object instanceof IFile
或IFolder
使用:
IFile file = (IFile)Platform.getAdapterManager().getAdapter(object, IFile.class);
和IFolder
相同。
答案 2 :(得分:1)
我在包装中看到了问题。如果您通过任何zip软件打开jar文件,您可以看到缺少lib和images文件夹。您需要在build.properties文件中添加这些文件夹的条目。您还需要将库添加到类路径(额外的类路径条目)如果您在进行这些更改后构建插件,它应该理想地工作。
答案 3 :(得分:0)
您的问题:“我的问题是:我该如何调试?”
我的回答:“远程调试”
您可能想要谷歌关于该主题,但我鼓励您阅读以下blog entry,当有人问我如何在第一次eclipse安装中调试代码时,我总是建议。这样做,你可以调试你的代码,以防你的第一个eclipse安装和你可能用来调试的第二个eclipse实例之间的环境有所不同(它们可能会有所不同,具体取决于你的目标平台设置和你的第二个实例启动配置)。
注意:如果您的特定问题是与greg指出的线程相关的问题,那么在第一个实例安装中调试代码将是无用的。