Java 为什么我部署的eclipse插件抛出NoClassDefFoundError异常?
我问这个问题,回答这个问题,是为了避免我以后再掉进这个老鼠洞里 我正在用大约40个插件构建一个基于eclipse IDE的跨平台软件开发环境。当我安装最新的夜间构建并在Linux测试系统上进行一些测试时,当我执行某个操作时,应用程序开始抛出可怕的java.lang.NoClassDefFoundError。这在我的Windows安装中没有发生。这在我的Linux或Windows开发环境中没有发生。此操作及其背后的代码是新的,因此尚未包含在我们的自动化测试套件中 引发异常的插件试图访问另一个插件中的静态类方法,但未能找到该类。我尝试过的事情:Java 为什么我部署的eclipse插件抛出NoClassDefFoundError异常?,java,eclipse,eclipse-plugin,noclassdeffounderror,Java,Eclipse,Eclipse Plugin,Noclassdeffounderror,我问这个问题,回答这个问题,是为了避免我以后再掉进这个老鼠洞里 我正在用大约40个插件构建一个基于eclipse IDE的跨平台软件开发环境。当我安装最新的夜间构建并在Linux测试系统上进行一些测试时,当我执行某个操作时,应用程序开始抛出可怕的java.lang.NoClassDefFoundError。这在我的Windows安装中没有发生。这在我的Linux或Windows开发环境中没有发生。此操作及其背后的代码是新的,因此尚未包含在我们的自动化测试套件中 引发异常的插件试图访问另一个插件中
我在10天前开始安装,每晚安装一次。一直到在我的测试环境中失败的构建。他们每个人都工作了。为什么?请参阅下面的我的答案(或提交您自己的答案)。在测试新的eclipse IDE构建时,请确保从一个新的不存在的工作区目录开始,并使用“-clean”命令行参数刷新从以前安装中保留下来的所有缓存 发生故障是因为我(1)在启动应用程序之前未能删除我以前的工作区目录;(2)未使用“-clean”命令行参数删除相关缓存信息;(3)即使是“-clean”可能还不够,我也删除了整个应用程序目录(这反过来又删除了“configuration”目录以及其中可能没有被“-clean”命令行参数“clean”的所有缓存数据) 我一直在重构一些类名,以获得更有意义的名称。当我在现有环境下运行该产品时,该产品正在使用缓存数据,获取已重命名的类的旧名称,但无法解析该名称。(您可能认为看到旧名称是一个很好的线索,但不幸的是,我尝试的第一件事是撤消类名重构,从而恢复以前的名称。因此错误报告了正确的名称,但我怀疑,有一个排序签名没有解析。) 当然,在测试时总是从一个新的工作区开始是一个最佳实践。我从事EclipseIDE开发已有多年,对此我非常了解。但昨天我忘了(我的Windows安装没有因为任何原因出现同样的错误,这一事实对我没有帮助)。有时你会忘记……它会咬你