Java Ant使用旧jdk-如何更改它?

Java Ant使用旧jdk-如何更改它?,java,eclipse,ant,Java,Eclipse,Ant,我在Ubuntu12.0464位上安装了EclipseIndigo(3.7.2),并尝试使用Java1.7编译该项目。我想我已经正确安装了java 1.7,因为我可以运行(使用java 1.7)并得到正确的版本消息: prokop@prokop-Precision-T1500:~$ java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM)

我在Ubuntu12.0464位上安装了EclipseIndigo(3.7.2),并尝试使用Java1.7编译该项目。我想我已经正确安装了java 1.7,因为我可以运行(使用java 1.7)并得到正确的版本消息:

prokop@prokop-Precision-T1500:~$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
然而,当在eclipse中的Ant中点击“play”时,我得到以下消息:

 Unsupported major.minor version 51.0
ant构建输出的“控制台”窗口的标题标题中还有:

[Ant Build] /usr/lib/jvm/java-6-openjdk/bin/java
我试图修改eclipse的环境设置:

  • 项目>属性>Java编译器到1.7
  • Window>Preferences>Java>将JRE安装到jdk1.7.\u 60,我将其下载到我的主页
    /home/prokop/SW/jdk1.7.0\u 60
但这并没有帮助-ant仍然在使用
java-6-openjdk

  • 有没有其他设置可以告诉Ant如何使用jdk1.7
  • 是否有可能在Ubuntu 12.04上强制使用Java1.7编译EclipseIndigo(3.7.2)

Ant使用
JAVA\u HOME
。在shell中尝试echo$JAVA_HOME以查看它指向的位置,并将其指向jdk 7

以下手册中的第4点:

这里可以找到很好的解释:

javac
任务中,尝试通过如下设置可执行文件属性来指定Java编译器:

<property name="JDK1.7.dir" location="/usr/lib/jvm/java-7" />
<property name="javac1.7" location="${JDK1.7.dir}/bin/javac" />

<target name="compile-tests">
  <javac executable="${javac1.7}" 
      fork="yes"
      includeantruntime="false" 
      srcdir="${test.dir}"
      destdir="${build.dir}" >
    <classpath refid="class.path" />
  </javac>
</target>

通过eclipse运行ant时会发生这种情况。您可以在Eclipse中使用外部工具配置来设置JDK。见附件


另一种设置方法是在build.xml中使用:

<project name="xyz" default="all">
<property name="ant.build.javac.target" value="1.7" />
...

...

这个全局参数(ant.build.javac.target)指定了要与JDK 7兼容的项目目标。

嗨,我刚刚编辑了一下,我从选择中选择了
/usr/lib/jvm/jdk1.7.0/bin/java
,但我仍然得到了与ant相同的输出。您好,我更新了我的答案。您已经说过,通过显示java版本输出,您正在使用java 7作为主要jdk。我的java_HOME变量没有设置,我将其设置为
/usr/lib/jvm/jdk1.7.0/bin/java
,并根据这一点将
/usr/lib/jvm/jdk1.7.0/bin/
放入路径中,但没有帮助。仅仅是indika建议设置eclipse外部工具配置JRE就解决了问题:什么是javac任务?抱歉,我是eclipse的新手,我正在尝试编译库tamplate以进行处理。我将您的代码放在我试图编译的处理库模板的
build.xml
()的开头。probelm-JavaC任务是用于编译基于Java的程序/文件的任务。什么是“ant-diagnostic”结果?