0

我已经安装了 Eclipse 3.5.2 和 Java 6 的 JDK。

这是我在 Eclipse 中安装的 JRE

替代文字 http://img806.imageshack.us/img806/3345/eclipsejres.jpg

我正在尝试使用 ant 构建文件进行编译,其中一部分看起来像这样并指定 java 1.5:

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

但是当我尝试编译时,控制台窗口显示以下错误:

compile:
    [javac] Compiling 1 source file to H:\jephperro\portlets\build
    [javac] javac: invalid target release: 1.5
    [javac] Usage: javac <options> <source files>
    [javac] where possible options include:
    [javac]   -g                        Generate all debugging info
    [javac]   -g:none                   Generate no debugging info
    [javac]   -g:{lines,vars,source}    Generate only some debugging info
    [javac]   -nowarn                   Generate no warnings
    [javac]   -verbose    ....

BUILD FAILED
H:\jephperro\portlets\CourseList-build.xml:25: Compile failed; see the compiler error output for details.

Total time: 531 milliseconds

我的 Eclipse 有什么问题?

4

5 回答 5

1

有关详细信息,请参阅编译器错误输出。

您可能依赖于使用比 1.5 JDK 更高版本的 Java 编译的库。

实际上,您的 1.5 JDK 在哪里?我所看到的只是一个JRE。我的猜测是您只需要下载 1.5 版的 JDK并将其添加到 Eclipse 中。

于 2010-07-15T18:43:58.213 回答
0

您可以在您的 ant 构建文件中创建一个运行等效的任务,java -version这样您就会了解 Eclipse 启动的 ant 正在使用哪个 Java 编译器。

提示:您的默认 JRE 是 1.6 JRE。这对于运行代码很好,但不适用于编译。只有 JDK 包含外部编译所需的魔法(例如由 ant 完成)。Eclipse 通过在自己的代码中包含一个增量 Java 编译器来解决这个问题(更神奇)。

时隔多年,我仍然不完全了解 Eclipse、ant 和 JDK 是如何互操作的,所以也许你需要做一些实验。

于 2010-07-15T18:48:51.850 回答
0

运行 Ant 文件时,AFAIR Eclipse 不使用其自己的内部 Java 编译器。检查您的本地路径并尝试找出 Ant 调用了哪个 javac。

于 2010-07-15T18:53:59.497 回答
0

'javac: invalid target release: 1.5' 编译错误通常是由源/二进制级别不兼容引起的。这意味着您正在尝试使用 JDK 1.4 或更低版本编译 JDK 5 的源代码级别。

Eclipse 使用内置的 Java 编译器。编译器实际遵循的级别取决于项目设置。您可以为每个项目配置 Java 级别或将其设置为全局级别的默认值。

从菜单栏中,选择 Window->Preferences。选择 Java->编译器首选项。将编译器合规性级别设置为 5.0。

于 2010-07-15T19:04:56.440 回答
0

正如 Saifuddin 和其他人提到的,这个错误很可能是没有为您想要的版本使用正确的 Java 编译器的原因。我注意到在您安装的 JRE 中有一个位于 DevsuiteHome_1 的 JDK,没有说明是什么版本。也许 Ant 正在使用它?

这很容易检查。您正在 Eclipse 中运行 ant。Ant 有自己的配置设置,可能与您的工作区不同。要检查 Ant 在运行时使用的版本,请执行以下步骤:

运行 -> 外部工具 -> 外部工具配置 -> 单击您的 ant 构建文件(如果您已经运行过一次,则应该创建它,否则您可以始终在此处创建它)-> 选择 JRE 选项卡 -> 验证您的运行时使用

于 2010-07-16T06:44:31.690 回答