Java Eclipse插件在调试时工作,但在安装时不工作
我编写了一个Eclipse插件,它在任何文件或文件夹(例如,在navigator视图中)上显示右键单击菜单选项。对于选定的每个文件(以及选定目录中的每个文件),插件计算并显示文件的MD5、SHA-1、SHA-256、SHA-384或SHA-512哈希。当我在开发过程中进行调试时,插件可以完美地工作 如果我使用site.xml创建站点,将其放在服务器上,然后安装到Eclipse(安装很好),我会看到菜单。我可以计算并显示所选文件的哈希值,但对于所选文件夹它就是不起作用。代码中绝对没有任何变化;它总是在调试模式下工作,而且在我安装它时它永远不会工作 我的问题是:如何调试它?起初,我认为Eclipse的Java Eclipse插件在调试时工作,但在安装时不工作,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我编写了一个Eclipse插件,它在任何文件或文件夹(例如,在navigator视图中)上显示右键单击菜单选项。对于选定的每个文件(以及选定目录中的每个文件),插件计算并显示文件的MD5、SHA-1、SHA-256、SHA-384或SHA-512哈希。当我在开发过程中进行调试时,插件可以完美地工作 如果我使用site.xml创建站点,将其放在服务器上,然后安装到Eclipse(安装很好),我会看到菜单。我可以计算并显示所选文件的哈希值,但对于所选文件夹它就是不起作用。代码中绝对没有任何变化;它总
workspace/.metadata/.log
文件会提供一些线索,但不会输出错误。我甚至尝试在中添加一些代码,将文件写入桌面,但从未创建该文件。有人知道发生了什么事,或者我应该如何着手解决这个问题吗?我以前从未经历过如此艰难的调试
供参考,是本项目。所有源代码都可以在那里查看(它可以作为Eclipse项目导入)
答案最终涉及两件事:
lib
目录。我使用的依赖项(ApacheCommonsCodec)没有包括在内,所以它当然不会运行非常感谢所有提供帮助的人 可能您首先在目标平台上测试了插件,只使用了
IFIle
特定扩展,然后添加了IFolder
,但是更新后的插件没有加载到Eclipse,因为您没有增加插件的版本,也没有使用-clean运行插件(Eclipse需要这两种扩展来重新加载插件)。在execute
方法中从事件中获取所需的一切,并将它们传递给工作线程
也不要使用IFile的对象实例
或IFolder
使用:
IFile file = (IFile)Platform.getAdapterManager().getAdapter(object, IFile.class);
对于IFolder
您的问题也是一样:“我的问题是:如何调试?”
我的回答:“远程调试”
您可能想在google上搜索这个主题,但我鼓励您阅读以下内容,当有人问我如何在第一次eclipse安装中调试代码时,我总是建议您阅读以下内容。这样做,您就可以调试代码,以防在您的第一个eclipse安装和您可能用于调试的第二个eclipse实例之间的环境中出现不同的情况(它们可能不同,具体取决于您的目标平台设置和第二个实例启动配置)
注意:如果您的特定问题如greg所指出的是与线程相关的问题,那么在第一个实例安装中调试您的代码将是无用的。我在您的包中看到了问题。如果您通过任何zip软件打开jar文件,您可以看到lib和images文件夹丢失。您需要在build.properties文件中为这些文件夹添加条目。此外,如果您在进行这些更改后构建插件,则需要将库添加到类路径(额外的类路径条目),这在理想情况下应该是可行的。这当然是一个有趣的想法!我将尽快尝试这个方法。好的,我终于有机会尝试使用
-clean
运行Eclipse,但这并没有解决问题。这里还发生了一些其他问题。我刚刚尝试了这个,但不幸的是它没有解决它(您可以在上看到更改)。好的,我也解决了这个问题(提交)。然而,它仍然不起作用!这太奇怪了。为什么它适用于文件而不适用于文件夹?我刚刚在EclipseKepler上测试了您的项目,它运行良好(无论是在IDE中还是导出时)。顺便说一句,您的项目缺少MANIFEST.MF(需要运行/导出)。这终于奏效了!我以为我已经包括了lib目录,但我没有。谢谢