为什么ANT告诉我JAVA_HOME不是错误的?

Ank*_*kur 59 ant classpath java-home

我收到错误:

C:\ dev\ws\springapp\build.xml:81:无法找到javac编译器; com.sun.tools.javac.Main不在类路径上.也许JAVA_HOME并没有指向JDK.它目前设置为"C:\ Program Files\Java\jre6"

但我已经明确将我的JAVA_HOME设置为C:\ Program Files\Java\jdk1.6.0_14

ANT在哪里获得这个价值?

小智 76

  1. 在Eclipse中,单击运行外部工具外部工具配置.
  2. 单击JRE选项卡.
  3. 单击Installed JREs ...按钮.
  4. 单击" 添加"按钮.
    (如果适用,请选择标准VM.)
  5. 单击" 目录"按钮.
  6. 浏览到已安装Java的JDK版本(而不是JRE)
    (例如C:\Program Files\Java\jdk1.7.0_04).
  7. 单击完成确定.
  8. Separate JRE中选择JDK,然后单击Close.
  9. 重新运行你的Ant脚本 - 玩得开心!

这适用于我遇到的特定场景.


Jon*_*eet 34

当你说你已经"明确地设置"JAVA_HOME到"C:\ Program Files\Java\jdk1.6.0_14"时 - 你从命令行运行"set"时看到的是什么?我相信如果没有设置,Ant会猜测JAVA_HOME的值...你有可能设置JAVAHOME而不是JAVA_HOME吗?

如果它不是那样的话,我建议您ant.bat在开始时以及在其他各个有趣的地方打印JAVA_HOME,编辑批处理文件(以及它所调用的任何内容 - 我不记得它是否是错综复杂或不是随意​​的).

  • 几个小时后,就是这样.确保JAVA_HOME设置为C:\ Program Files\Java\jdk1.6.0_14.不是jre目录,不是bin目录 (37认同)
  • 删除\ bin后,它对我有用..谢谢@Chris (6认同)
  • 克里斯蒂安所说的是正确的做法.另外,记住不要; 在路径之后.傻我知道. (4认同)

Ron*_*nie 17

当我尝试使用以下命令运行Ant构建时遇到了同样的问题:

java -cp ant.jar:ant-launcher.jar org.apache.tools.ant.Main
Run Code Online (Sandbox Code Playgroud)

该命令的输出是:

BUILD FAILED
XXX/build.xml:8: 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 "/usr/lib/jvm/java-6-openjdk/jre"
Run Code Online (Sandbox Code Playgroud)

似乎java可执行文件选择"/ usr/lib/jvm/java-6-openjdk/jre"作为JAVA_HOME,而不是安装了JDK的"/ usr/lib/jvm/java-6-openjdk".

我通过设置fork="yes"我的<javac>任务解决了这个问题.

请查看:http://ant.apache.org/manual/Tasks/javac.html


小智 16

你也可能在你的JAVA_HOME设置中包含/ bin,而Ant正在向它添加/ bin - 从而找不到任何exe.它发生在我身上:}


小智 8

确保使用尾随分号:这不起作用:

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29;
Run Code Online (Sandbox Code Playgroud)

这将:

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_29
Run Code Online (Sandbox Code Playgroud)


小智 7

我遇到了类似的问题.我会链接从Maven构建运行Ant任务,我得到了问题.我已将其修改为以下步骤:

  • 确保JAVA_HOME设置正确.你可以在命令行中的Windowns上检查它:C:> echo%JAVA_HOME%结果看起来像:C:\ Progra~1\Java\jdk1.6.0_30 \
  • 将文件tools.jar从%JAVA_HOME%\ lib复制到Maven的lib目录.

它对我有用.


Sha*_*ams 5

要解决此问题,请在window-> preferences-> ant-> runtime中添加tools.jar文件.