为什么Eclipse不能在java 1.5中编译我的代码?

时间:2010-07-15 18:41:33

标签: eclipse java jdk1.5 java-5

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

这是我在Eclipse中安装的JRE

alt text 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的问题是什么?

5 个答案:

答案 0 :(得分:1)

  

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

您可能依赖于使用Java版本而不是1.5 JDK编译的库。

实际上,你的1.5 JDK在哪里?我只看到一个JRE。我的猜测是你需要download a version 1.5 JDK并在Eclipse中添加它。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

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

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

运行 - &gt;外部工具 - &gt;外部工具配置 - &gt;点击你的ant构建文件(如果你已经运行过一次就应该创建它,如果不是你总是可以在这里创建它) - &gt;选择JRE选项卡 - &gt;验证您正在使用的运行时间