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

Ant构建不工作:找不到javac编译器,java,jakarta-ee,ant,Java,Jakarta Ee,Ant,我正在尝试运行一些JavaEE示例。Ant建议:也许JAVA_HOME没有指向JDK。当前设置为“C:\Program Files\Java\jre7 查看windows 7变量时,我的JAVA\u HOME变量是:C:\Program Files\JAVA\jdk1.7.0\u 03 但是,我的路径是(注意jdk1.6.0_26): 要让windows保存我的路径,是否需要执行任何特殊操作 更多信息: C:\javaeetutorial5\examples\web\hello2>ant

我正在尝试运行一些JavaEE示例。Ant建议:
也许JAVA_HOME没有指向JDK。当前设置为“C:\Program Files\Java\jre7

查看windows 7变量时,我的
JAVA\u HOME
变量是:
C:\Program Files\JAVA\jdk1.7.0\u 03

但是,我的路径是(注意jdk1.6.0_26):

要让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
月食

  • 右键单击build.xml-->build path-->configure buildpath-->select libraries选项卡
  • 单击“添加库”-->双击[jre系统库”-->环境---->已安装的jre---->添加---->标准虚拟机
  • 单击目录--->浏览到jdk[C:\Program Files\Java\jdk1.7.0_01]
  • 完成
  • 将选择jre更改为jdk-->单击“确定”

选择标准虚拟机后,单击JRE类型窗口中的“下一步”按钮,进入下一个名为“JRE定义”的窗口,在该窗口中可以找到目录按钮。

在windows中,进入计算机属性、高级系统设置、高级、环境变量

添加一个名为“JAVA\u HOME”的系统变量,在我的示例“C:\Program Files\JAVA\jdk1.7.0\u 51”中,将其文件夹设置到JDK位置


关闭命令提示符,重新打开它,它现在应该可以工作了。

快速解决同样的问题

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


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

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

我认为系统从左到右扫描路径变量,不管先到的是什么都会被考虑

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

我在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\U 91\lib\tools.jar复制到C:\Program Files\Java\jre8\lib\ext


另外,请注意您在Eclipse中选择的jdk和jre版本是否兼容。

在Windows 7 x64系统上的Ant命令行中出现此错误

下面的更改解决了这个问题


从安装了JDK,然后添加了一个新的系统变量,其值为C:\Program Files\Java\jdk1.8.0\u 131

,这对我来说很有效。即使在添加了tools.jar之后,如果它显示找不到javac,也是如此。 单击run->externaltoolsconfiguration->jre->separatejre确保指向jdk->apply->run 然后运行build.xml文件 Jusy确保在已安装的jre中您指向jdk位置。 希望这有帮助

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