java.lang.NoClassDefFoundError:org / eclipse / jdt / internal / compiler / impl / CompilerOptions

时间:2015-07-16 11:20:09

标签: eclipse ant noclassdeffounderror

我是一个eclipse插件开发人员,当我尝试使用ant从命令行构建我的eclipse源时,它失败并出现以下错误。 java.lang.NoClassDefFoundError:org / eclipse / jdt / internal / compiler / impl / CompilerOptions

我使用的是java 1.7_72,eclipse 44,ant 1.7.1

它在我的机器上长时间使用此配置,它突然开始失败并显示此消息。我已经尝试了各种选项,如卸载和重新安装可能影响的所有可能的软件,去掉了eclipse的新副本,蚂蚁等等。 它适用于我的同事机器,我们都使用相同的软件eclipse / ant / java等。 欢迎提出任何意见。

提前多多感谢。

2 个答案:

答案 0 :(得分:0)

我一直在使用Eclipse的PDE无头产品构建脚本来解决类似的错误。

当构建器执行为我的插件生成的临时build.xml文件时,会发生错误。这个构建文件编译我的插件代码。

尝试使用命令行上的ant手动运行此临时构建文件。但

显然,该错误表明JDT编译器存在问题。

查看生成的build.xml,我发现了以下目标:

<target name="properties" if="eclipse.running">
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
</target>

告诉构建器在属性eclipse.runningtrue时覆盖默认的JDK编译器。

我添加了

<property name="eclipse.running" value="false"/>

在我的构建脚本的开头:错误消失,我的构建成功完成

答案 1 :(得分:0)

在我的情况下,问题也出现在使用Eclipse Neon的PDE无头构建期间。构建脚本属性(baseLocation)指向正在运行的Eclipse实例。 在运行构建之前关闭Eclipse解决了这个问题。

在更新目标平台后出现问题。除安装版本外,最终还包括更新版本的Eclipse和JDT。

从Eclipse Neon更新到2019-03(4.14)之后再次出现。将-data <workspace>"添加到eclipse启动器命令行解决了它。