gpt4 book ai didi

java - 错误的类文件使 ant 构建失败

转载 作者:行者123 更新时间:2023-11-30 11:12:05 25 4
gpt4 key购买 nike

我刚刚将 jdk1.6 更改为 1.8 并且在制作新的 ant 构建时,它提供了这样的错误信息:

[javac] /usr/workspace/test/src/JsonString.java:7: cannot access java.lang.Object
[javac] bad class file: java/lang/Object.class(java/lang:Object.class)
[javac] class file has wrong version 52.0, should be 50.0
[javac] Please remove or make sure it appears in the correct subdirectory of the classpath.
[javac] public class JsonString {
[javac]

这很奇怪。 Object类应该是java1.8,怎么会坏呢?有谁知道如何解决这个问题?

最佳答案

首先检查 javac 任务没有使用默认编译器以外的特定编译器。如果您将 executable 属性设置为派生特定编译器(以及 fork="yes"),就会发生这种情况,如 task documentation 中所述:

executable

Complete path to the javac executable to use in case of fork="yes". Defaults to the compiler of the Java version that is currently running Ant. Ignored if fork="no". Since Ant 1.6 this attribute can also be used to specify the path to the executable when using jikes, jvc, gcj or sj.

如果您只是调用 javac 而未指定任何外部编译器,则 Ant 将使用运行 Ant 的 Java 版本附带的编译器。从错误消息来看,它显然使用了 Java 1.6 编译器(类文件的版本为 50.0)。 Ant 通常使用 PATH 环境变量中的 java 可执行文件运行。因此,请确保 PATH 变量中指定的第一个 Java 目录是 Java 1.8。

理想情况下,您应该将 JAVA_HOME 设置为 Java 1.8 的路径,并让 PATH 引用 JAVA_HOME 本身,这样两者都指向相同的安装。

JAVA_HOME -> /path_to_jdk1.8
PATH -> %JAVA_HOME%;...;/path_to_some_other_jdk

关于java - 错误的类文件使 ant 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com