![](/img/trans.png)
[英]Eclipse “Enhanced Class Decompiler” plugin does not decompile when debugging
[英]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项目导入)。
答案最终涉及两件事:
lib
目录。 我使用的依赖项(Apache Commons Codec)没有包含在内,所以它当然不能运行。 非常感谢所有提供帮助的人!
这可能是你第一次只测试您的插件在目标平台IFIle
具体延伸和补充IFolder
后,但没有加载的更新插件到Eclipse,因为你并没有增加插件的版本,并没有与运行-clean (Eclipse需要重新加载你的插件)。
您的代码假设ExecutionEvent
中的值保持有效,直到您的线程运行,这可能不是这种情况。 在execute
方法中获取事件所需的所有内容,并将它们传递给工作线程。
此外,而不是使用object instanceof IFile
或IFolder
使用:
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.