找不到javac1.8类

问题描述 投票:79回答:11

我安装了两个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

我的JAVA_HOME和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在安装过程中是否设置了一些配置?

java eclipse ant classnotfound
11个回答
172
投票
Class not found: javac1.8

已知此错误发生在小于1.9.0的Apache Ant版本中 - 这与Java 8不兼容。如果您使用的是Ant <1.9.0版本,则应更新到1.9.x版本。

这是相关的错误报告:https://issues.apache.org/bugzilla/show_bug.cgi?id=53347

顺便说一句,如果你只想用Java 8编译,但不需要编译任何实际的Java 8语法,那么你可以将以下参数传递给javac作为一种解决方法,这将允许你继续使用旧版本的Ant :

-Dbuild.compiler=javac1.7

0
投票

有时在通过ANT构建战争时的问题也与build.properties文件中的java版本未匹配有关,因为build.XML尝试使用build.compiler属性中提到的java版本

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


0
投票

您可以下载更新版本的eclipse,其中包含插件目录中较新版本的Ant。然后,将Ant jar复制到旧的eclipse的插件目录中。 Eclipse将自动指向较新版本的Ant。对于我来说,这适用于较旧的开普勒和更新的Mars2。


14
投票

作为Kristian Holdhus答案的后续(标记为正确),您可以使用compiler上的Ant javac task属性。设置compiler="modern"应该都是向后的(早在1.3)和向前兼容。

这样就无需设置名为build.compiler的Java System属性。只有在没有在compiler任务上明确设置javac属性的情况下,Ant才会使用build.compiler的值作为后备。


7
投票

我有同样的问题。我正确设置了JAVA_HOME和JRE_HOME。我也有Ant> 1.9。

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


3
投票
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安装,你应该没问题。


2
投票

我用Eclise试了一下,得到了同样的错误Class:javac1.8

我在我的系统上验证了ANT版本

>反转

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

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

我只是编辑了Eclipse中的ANT HOME路径,它也可以在这里工作。 :)

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

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

现在从这里更改ANT Home路径。

enter image description here


1
投票

将Ant更新为1.9.x版本,因为Java 8与Ant版本不太相似,而不是1.9版本


0
投票

我尝试了所有其他解决方案,但都没有奏效。我终于找到了一种适用于Eclipse的方法:

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

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


0
投票

将Ant更新为1.9.x版本,因为Java 8与Ant版本少于1.9版本或在命令put -Dbuild.compiler = javac1.7之后不兼容,请参阅以下内容:

ant release -Dbuild.compiler = javac1.7


0
投票

你可以在你的系统上下载并解压缩ANT 1.10并尝试将eclipse中的ANT主页更改为1.10。它应该工作,请阅读此更多详细信息。 qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.