找不到 javac1.8类

我已经安装了两个 jdk-jdk 1.5和 jdk 1.8。 我有以下 Ant build.xml 配置文件:

<target name="compileCustomSrc">
<javac srcdir="src" destdir="build/classes" source="1.5" target="1.5" >
<classpath>
<fileset dir="C:/lib/">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
</target>

在安装 jdk1.8之前,从 Eclipse 调用的 Ant 成功地编译了所有源代码:

Class not found: javac1.8

My JAVA_HOME and JRE_HOME:

JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

并在 Eclipse JRE 中设置为1.5。 Java 1.8在安装期间是否设置了一些配置?

102881 次浏览
JAVA_HOME = C:\Program Files (x86)\Java\jdk1.5.0_16
JRE_HOME = C:\Program Files (x86)\Java\jre1.5.0_16

您的 JAVA _ HOME 和 JRE _ HOME 被设置为 JAVA 1.5安装,因此找不到1.8个二进制文件(如 javac)。 将它们设置为 Java 1.8安装,应该就可以了。

Class not found: javac1.8

This error is known to happen with Apache Ant versions less than 1.9.0 - which aren't compatible with Java 8. If you're using a version of Ant < 1.9.0, you should update to a 1.9.x release.

Here is the related bug report: https://issues.apache.org/bugzilla/show_bug.cgi?id=53347

Btw, if you just want to compile with Java 8, but don't need to compile any actual Java 8 syntax, then you can pass the following argument to javac as a workaround, which would allow you to continue using an older version of Ant:

-Dbuild.compiler=javac1.7

我遇到了同样的问题。我正确地设置了 JAVA _ HOME 和 JRE _ HOME。我还设置了 Ant > 1.9。

我所做的修复工作是进入 Eclipse to Window-> Preferences。展开 Ant 并选择 Runtime。默认情况下,应该选中 Classpath 选项卡,在右侧有一个名为“ Ant Home”的按钮。单击这个按钮,再次检查它是否指向您的 Ant 文件夹。

作为 KristianHoldhus 答案的后续(标记为正确) ,您可以在 Ant javac 任务上使用 compiler属性。设置 compiler="modern"应该既向后(最远到1.3)又向前兼容。

这就避免了设置名为 build.compiler的 JavaSystem 属性的需要。只有在没有显式设置 javac任务的 compiler属性的情况下,Ant 才会使用 build.compiler的值作为备用。

将 Ant 更新为1.9. x 版本,作为 Java 8发布,与 Ant 低于1.9的版本不兼容

我尝试与 Eclise 和得到相同的错误 未找到类: javac1.8

我在系统上验证了 ANT 版本

> 蚂蚁版本

ApacheAnt (TM)版本1.9.6于2015年6月29日编译

当我尝试从命令提示符运行 build.xml 时,它工作了。 然后我检查了 Eclipse,它指的是 ANT 的旧版本。

我只是简单地编辑了 Eclipse 中的 ANT HOME 路径,它也是从这里开始工作的。 :)

下面是需要在 Eclipse 中编辑 ANT Path 的图像。

  1. 右键单击 build.xml 文件
  2. 外部工具配置
  3. 选择类路径选项卡

现在从这里改变蚂蚁回家的路径。

enter image description here

我尝试了所有其他的方法,但没有一个奏效。我终于在 Eclipse 中找到了一种适合我的方法:

  • 右键单击 ant 任务名称,例如,在 ant窗口中单击“ compileCustomSrc”。
  • 选择 Run As | External Tool Configurations
  • 然后在 JRE选项卡上,选择 Separate JRE: Java SE7或任何你的 java7命名,然后按 Apply,然后按 Run

您的蚂蚁任务将被执行,并将正确构建!

将 Ant 更新为1.9. x 版本的 Java 8,与 Ant 版本低于1.9的版本不兼容,或者在 put-Dbuild.腰编译器 = javac1.7命令之后,请参见下面的代码:

Ant release-Dbuild.Editor = javac1.7

您可以在您的系统上下载并解压缩 ANT 1.10,并尝试将您的项目在 eclipse 中的 ANT 主页更改为1.10。它应该可以工作,阅读更多细节。http://devops-badal.blogspot.com/2017/02/class-not-found-javac18-issue-while.html

有时候,通过 ANT 构建 war 的问题也与 build.properties 文件中的 java 版本错过匹配有关,因为 build.XML 试图使用 build.编译器属性中提到的 java 版本

检查 build.Editor 属性是否与预期的 Java 版本相同。

您可以下载一个更新版本的 eclipse,其中在 plugins 目录中包含一个更新版本的 Ant。然后,将 Ant jar 复制到旧的 eclipse 的插件目录中。Eclipse 将自动指向较新版本的 Ant。这对于老的开普勒望远镜和新的火星2对我来说是有效的。

我也遇到了同样的问题,我能够通过设置一个属性在 build.xml 中解决这个问题。

<property "build.compiler=javac1.7">

我尝试了所有其他的方法,但没有一个奏效。我最终找到了一种在 Eclipse 中适用的方法,按照以下步骤操作:

  1. 在 ant 窗口中右键单击 ant 任务名称,例如‘ myBuild.xml。

  2. 选择 Run As | External Tool Configurations

  3. 然后在 JRE 选项卡上,选择分离 JRE: JavaJDK7或任何你的 java7命名。

  4. 点击应用,然后运行。

您的蚂蚁任务将被执行,并将正确构建!