代码之家  ›  专栏  ›  技术社区  ›  jeph perro

为什么Eclipse不会在Java 1.5中编译我的代码?

  •  0
  • jeph perro  · 技术社区  · 14 年前

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

    这是我在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 回复  |  直到 14 年前
        1
  •  1
  •   Bill the Lizard Alexis MP    14 年前

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

    您可能对使用Java的后期版本编译的库依赖于您的1.5 JDK。

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

        2
  •  0
  •   Carl Smotricz    14 年前

    您可以在Ant构建文件中创建一个任务,该任务运行的等效于 java -version 因此,您将了解由Eclipse启动的Ant正在使用哪种Java编译器。

    提示:您的默认JRE是1.6 JRE。这很好。 运行 代码,但不用于编译。只有JDK包含外部编译所需的魔力(例如由Ant完成)。Eclipse通过在它自己的代码中包含一个增量Java编译器来实现这一点(更多的魔术)。

    几年后,我仍然不完全理解Eclipse、Ant和JDK是如何互操作的,所以也许您需要做一些试验。

        3
  •  0
  •   vwegert    14 年前

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

        4
  •  0
  •   Muhammad Saifuddin Gopal vaid    14 年前

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

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

    从菜单栏中,选择“窗口”->首选项。选择Java>编译器偏好。将编译器符合性级别设置为5.0。

        5
  •  0
  •   Ross    14 年前

    正如Saifuddin和其他人提到的,这个错误很可能是不使用正确的Java编译器的原因。我注意到在您安装的JRE中,有一个JDK位于devsuitehome_1中,没有说明哪个版本。也许蚂蚁在用这个?

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

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