Java ant Eclipse 运行错误

3
我正在收到以下错误信息:

可能是重复的问题:
ant error JAVA_HOME does not point to SDK

错误内容如下:

BUILD FAILED
C:\Users\myname\Documents\CMSC\Proj1\build.xml:22: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files (x86)\Java\jre7"

Total time: 1 second

我的 build.xml 文件包含以下代码:

<project name="Project1" default="compile" basedir=".">

  <description>
    Build file for Project1
  </description>

  <!-- global properties for this build file -->
  <property name="source.dir" location="src"/>
  <property name="build.dir" location="bin"/>
  <property name="doc.dir" location="doc"/>
  <property name="main.class" value="proj1.Project1"/>

  <!-- set up some directories used by this project -->
  <target name="init" description="setup project directories">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${doc.dir}"/>
  </target>

  <!-- Compile the java code in ${src.dir} into ${build.dir} -->
  <target name="compile" depends="init" description="compile java sources">
    <javac srcdir="${source.dir}" destdir="${build.dir}"/>
  </target>

  <!-- execute the program with the fully qualified name in ${build.dir} -->
  <target name="run" description="run the project">
    <java dir="${build.dir}" classname="${main.class}" fork="yes">
        <arg line="${args}"/>
    </java>
  </target>

  <!-- Delete the build & doc directories and Emacs backup (*~) files -->
  <target name="clean" description="tidy up the workspace">
    <delete dir="${build.dir}"/>
    <delete dir="${doc.dir}"/>
    <delete>
      <fileset defaultexcludes="no" dir="${source.dir}" includes="**/*~"/>
    </delete>
  </target>

  <!-- Generate javadocs for current project into ${doc.dir} -->
  <target name="doc" depends="init" description="generate documentation">
    <javadoc sourcepath="${source.dir}" destdir="${doc.dir}"/>
  </target>

</project>

我在这里做错了什么?看起来它试图在我的 src 文件夹中查找 javac 文件,但我不知道该如何修复。


JRE和JDK是不同的东西,你知道的。 - Aleksandr M
1
@martinclayton 这并不是一个重复的问题,因为这个人是在Eclipse中使用ant脚本运行的。环境配置与从命令行运行时略有不同。 - Jagger
4个回答

4

JAVA_HOME必须指向JDK而不是JRE

在执行ant之前,为了测试它,请键入set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_07或您拥有的任何版本。


1
我正在Eclipse中运行这个程序。要将其更改为JDK的位置,我需要修改Eclipse的设置还是构建文件? - Haque1
这更像是一个 shell 设置。但是 Eclipse 可以调用 shell。有一个已安装的 JDK 和 JRE 的部分。您需要使用 JDK。它具有像 javac 这样的二进制文件。 - Greg Giacovelli
2
尝试通过使用“Window”->“Preferences”->“Java”->“Installed JREs”将您的JDK添加到Eclipse中。单击“Add...”按钮,然后将JDK设置为默认JRE。 - Jagger

4

在此处下载最新的JDK。 安装它并注意它的安装位置。 例如,32位的JDK应安装到C:\Program Files (x86)\Java\jdkSOMETHING

在Eclipse中,转到Window > Preferences > Java > Installed JREs并单击Add>Standard JVM(然后下一步)。 浏览到上面JDK的目录,然后点击完成。 检查项目是否正在使用此JDK,请右键单击项目并转到属性。 从那里,寻找Java Build Path。 在Libraries选项卡下,您应该看到一个JRE System Library。 如果不是刚添加的JDK,则单击条目并点击编辑按钮进行更改。

现在运行你的Ant构建。


0
看起来你的错误是在Windows环境下,而且你是通过命令提示符运行ant
Follow Right Click(My Computer) -> properties -> Advanced 
-> Environment Variables -> System Variables -> New
Add  Variable Name = JAVA_HOME
     Variable Value = Path to your Base folder of Java 
                      e.g. C:\Program Files\Java\jdkxxx

重新启动命令提示符,输入java -version。如果正确打印出您的Java版本,则说明您已经准备就绪。

-1

它的意思是

"也许JAVA_HOME没有指向JDK。"

也许你应该检查一下:D


我是新手,正在使用Eclipse。我应该更改Eclipse的设置还是构建文件? - Haque1
1
尝试在Google中搜索类似“如何从Eclipse运行Ant”的内容,并按照说明进行操作。 - sheidaei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接