2010-07-15 113 views
0

我已经安装了Eclipse 3.5.2和JDK的Java 6为什么Eclipse不能在java 1.5中编译我的代码?

这是我在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的问题是什么?

+0

我们正在慢慢迁移到使用Eclipse编译器,因此我们可以依赖JRE而不是完整的JDK。 – 2010-07-15 18:53:27

回答

1

see the compiler error output for details.

您可能对使用比1.5 JDK更高版本的Java编译的库存在依赖关系。

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

+0

在“安装JRE”列表中有几个JDK。不过,我怀疑你已经把你的手指放在了这个问题上。 – 2010-07-15 18:49:57

+0

您不需要1.5 JDK来使用-target 1.5 – 2010-07-15 19:13:24

+0

为什么当我安装1.6时需要安装1.5 JDK? – 2010-07-15 19:38:13

0

您可以在您的ant构建文件中创建一个运行java -version等效项的任务,以便您了解由Eclipse启动的Ant所使用的Java编译器。

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

经过多年,我还没有完全理解Eclipse,ant和JDK是如何互操作的,所以也许你需要做一点实验。

0

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

0

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

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

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

0

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

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

运行 - >外部工具 - >外部工具配置 - >单击您的ant构建文件(如果您没有运行,总是在这里创建它) - >选择JRE选项卡 - >验证您正在使用的运行时间

相关问题