Ant构建无法工作:找不到javac编译器

21
我正在尝试运行一些Java EE示例。Ant建议:可能JAVA_HOME没有指向JDK。它当前设置为"C:\Program Files\Java\jre7" 当我查看Windows 7变量时,我的JAVA_HOME变量是:C:\Program Files\Java\jdk1.7.0_03 然而,我的路径是(注意jdk1.6.0_26):
%M2_HOME%\bin;%ANT_HOME%\bin;%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;
%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Microsoft Application Virtualization Client;%M2%;
C:\Program Files\QuickTime\QTSystem\;C:\Program Files\TortoiseSVN\bin;
%GLASSFISH%;%GLASSFISH_PARENT%;

PATH=C:\Maven\apache-maven-2.2.1\bin;C:\Ant\apache-ant-1.8.2\bin;**C:\Program File
s\Java\jdk1.6.0_26\bin;**C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C
:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft Applicatio
n Virtualization Client;C:\Maven\apache-maven-2.2.1\bin;C:\Program Files\QuickTi
me\QTSystem\;C:\Program Files\TortoiseSVN\bin;C:\glassfish3\glassfish\bin;C:\gla
ssfish3\bin;C:\Sun\jwsdp-2.0\jwsdp-shared\bin

我需要做什么特殊的操作才能让Windows保存我的路径?

更多信息:

C:\javaeetutorial5\examples\web\hello2>ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre7\li
b\tools.jar
Buildfile: C:\javaeetutorial5\examples\web\hello2\build.xml

-pre-init:

init:

default-ear:

-pre-compile:

bpp-actual-compilation:
     [echo] Compiling hello2
     [echo] javaee.classpath.prefix is: C:\glassfish3/lib
     [echo] is.glassfish.v3 is: ${is.glassfish.v3}
    [javac] C:\javaeetutorial5\examples\bp-project\command-line-ant-tasks.xml:93
: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=las
t; set to false for repeatable builds

BUILD FAILED
C:\javaeetutorial5\examples\bp-project\command-line-ant-tasks.xml:93: 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\Java\jre7"

Total time: 0 seconds
8个回答

41

针对Eclipse

  • 右键点击build.xml ---> 构建路径 ---> 配置构建路径 ---> 选择库选项卡
  • 点击 "添加库" ---> 双击 [jre系统库] ---> 环境 ---> 已安装的JREs ---> 添加 ---> 标准VM
  • 点击目录 ---> 浏览到JDK [C:\Program Files\Java\jdk1.7.0_01]
  • 完成
  • 将选择的JRE更改为JDK ---> 点击确定

21

解决该问题的快速方法是:

将 C:\Program Files\Java\jdk1.7.0_03\lib\tools.jar 复制到 C:\Program Files\Java\jre7\lib\ 中

出现此异常是因为 JAVA_HOME 被设置为 C:\Program Files\Java\jre7,并且 Ant 在其中找不到 tools.jar。


4
在Windows中,打开计算机属性,进入高级系统设置,进入高级选项卡,找到环境变量。
添加一个名为“JAVA_HOME”的系统变量,并将其文件夹设置为JDK的位置。在我的情况下是“C:\Program Files\Java\jdk1.7.0_51”。
关闭命令提示符窗口,重新打开它,现在应该可以工作了。

3

当您的系统中同时安装了JRE和JDK时,请确保JDK在PATH变量中排在第一位。

我认为系统从左到右扫描PATH变量,以先出现的为准。

在我的情况下(使用LinuxMint),我遇到了相同的错误。当我在JRE之前将JDK添加到PATH变量中时,问题得到了解决。


3
我在Mac OS X上遇到了同样的错误,但我找到的所有答案都是针对Windows系统的,由于两者的路径略有不同,这些解决方案对我无效。在花费数小时的时间后,我终于通过以下方式修复了它:
将 /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/lib/tools.jar 复制到 /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre/lib/ext
这对Windows用户也适用:
将 C:\Program Files\Java\jdk1.8.0_91\lib\tools.jar 复制到 C:\Program Files\Java\jre8\lib\ext
另外,请确保Eclipse中选择的jdk和jre版本是兼容的。

1
当您在选择标准VM后点击JRE Type窗口中的“下一个”按钮时,您将进入下一个名为JRE Definition的窗口,在该窗口中可以找到目录按钮。

0

在 Windows 7 x64 系统的 Ant 命令行中遇到了这个错误。

以下更改解决了问题

Oracle 服务器 安装了 JDK,然后添加了一个新的系统变量 JAVA_HOME,值为 C:\Program Files\Java\jdk1.8.0_131


0

这对我有用。即使添加了tools.jar,如果它显示找不到javac。 点击运行->外部工具配置->jre->单独的JRE确保指向jdk->应用->运行 然后运行build.xml文件 只需确保在安装的jre中指向jdk位置。 希望这可以帮助到您。


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