gpt4 book ai didi

java - Eclipse 无法编译,错误的类文件,错误的版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:57 26 4
gpt4 key购买 nike

我正在尝试编译从其他开发人员 checkout 的 SVN 代码。 Eclipse 最近给我带来了很多麻烦。

以下是我的项目特定设置: alt text

这是我的 ant 文件的编译部分:

<target name="compile" depends="build-common, init" description="Compile files. ">
<javac srcdir="${src_dir}" destdir="${build_dir}" debug="true" >
<classpath path="${tomcat_home}/lib/servlet-api.jar;" />
</javac>
</target>

当我编译(使用 Ant)时,我收到一条错误消息:

compile:
[javac] Compiling 3 source files to H:\MYCOMPANY\portlets\build
[javac] H:\MYCOMPANY\portlets\src\com\mycompany\portlets\CourseList.java:3: cannot access java.io.IOException
[javac] bad class file: C:\Program Files\Java\jre1.6.0_07\lib\rt.jar(java/io/IOException.class)
[javac] class file has wrong version 49.0, should be 48.0
[javac] Please remove or make sure it appears in the correct subdirectory of the classpath.
[javac] import java.io.IOException;
[javac] ^
[javac] 1 error

这个错误是什么意思?

最佳答案

49.0的类文件版本属于Java 1.5.x,而48.0的属于Java 1.4.x版本之一。由于引入了几个新功能和 Java 语言规范中所做的更改,类文件结构在 1.5 中发生了变化。

从错误中,可以推断出需要 Java 1.4 类文件,而找到的是 Java 1.5 类文件。编译器似乎是 Java 1.4 编译器,因此您应该尝试验证您是否使用了正确版本的 Java 编译器以及正确的 JDK(即 JDK 主目录)。

附录

Ant 倾向于在 $JAVA_HOME/bin/javac 中查找 javac 可执行文件。如果 JAVA_HOME 环境变量设置不正确,比如 Java 1.4 home,那么即使在 Eclipse 中也有可能出现上述错误。

附录 #2

向 PATH 环境变量中添加条目可能会导致改变 Ant 的搜索类路径行为,可能会导致使用不同的 tools.jar 来编译源代码。这可能是由于 JRE 1.4.2 安装中的 jvm.dll 被用于运行 Eclipse(以及 Ant)。

关于java - Eclipse 无法编译,错误的类文件,错误的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535722/

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