【问题标题】:Java ant Eclipse run error [duplicate]Java ant Eclipse运行错误[重复]
【发布时间】:2012-10-09 19:04:59
【问题描述】:

可能重复:
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 是不同的东西,你知道的。
  • @martinclayton 并不是真正的重复,因为这个人正在使用 Eclipse 运行 ant 脚本。环境配置与从命令行运行时的配置略有不同。

标签: java ant


【解决方案1】:

JAVA_HOME 必须指向 JDK 而不是 JRE

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

【讨论】:

  • 我在 Eclipse 中运行它。改成jdk的位置,是不是要修改eclipse的设置或者build文件?
  • 它更像是一个shell设置。但是 Eclipse 可以调用 shell。有一个部分用于安装 JDK 和 JRE。您需要使用JDK。它包含诸如 javac 之类的二进制文件。
  • 尝试使用 Window->Preferences->Java->Installed JREs 将您的 JDK 添加到 Eclipse。点击按钮Add...,然后将JDK设置为默认的JRE。
【解决方案2】:

下载最新的JDKhere。安装它并注意它的位置。比如 32 位的 JDK 应该安装到C:\Program Files (x86)\Java\jdkSOMETHING

在 Eclipse 中,转到 Window > Preferences > Java > Installed JREs 并单击 Add > Standard JVM(然后是 Next)。浏览到上面提到的 JDK 目录,然后点击 Finish。要检查您的项目是否正在使用此 JDK,请右键单击该项目并转到 Properties。从那里寻找Java Build Path。在Libraries 选项卡下,您应该会看到JRE System Library。如果不是你刚刚添加的JDK,点击该条目并点击Edit按钮并更改它。

现在运行您的 Ant 构建。

【讨论】:

    【解决方案3】:

    查看您的错误,看起来像它的 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 版本,那么您应该已准备就绪。

    【讨论】:

      【解决方案4】:

      它在说

      “也许 JAVA_HOME 不指向 JDK。”

      也许你应该检查一下:D

      【讨论】:

      • 我是新手,我正在使用 Eclipse。我应该更改 eclipse 的设置还是构建文件?
      • 尝试在 Google 中搜索类似“如何从 Eclipse 运行 ant”的内容并按照说明进行操作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2012-07-31
      • 2015-06-10
      • 2013-12-19
      • 2018-02-18
      相关资源
      最近更新 更多