Gangmax Blog

The error "Plug-in ... was unable to load class"

今天遇到一个令人发指的错误。

在开发eclipse plug-in时,启动plug-in工程的新eclipse实例进行调试,一直都工作正常。但是在我从code repository里面更新了最新的代码之后,突然就不好使了。在启动新的target plug-in eclipse instance之后,打开新的NewWizard(这是我们plug-in功能的一部分)之后,立即报错:”Plug-in … was unable to load class”,此时host eclipse instance的console中没有任何错误。

首先就是怀疑最新的代码有问题,我看了一下更新的文件,可以排除和这个错误有关。然后google,有文章说需要看log文件,可我找了一下根本没有。然后就没有找到什么有价值的文章,虽然以这几个关键字搜索到的文章很多。

然后自己思考:“unable load class”,很有可能是相关的类文件没有找到,我看了一下该工程下生成的class文件,也没有问题。抱着试试看的心态(之前此招解决了不少于类加载有关的问题),我在eclipse里重新clean并build该工程,再试,奇迹发生了,一切运行正常。

这个问题的根源很可能是:在某些情况下,比如这次当从SCM系统更新代码之后,eclipse的自动编译机制有问题,导致编译后的class文件没有正常出现在class path中,因此产生找不到类的问题。

Comments