Ant"JAVA_HOME不指向JDK" - 但确实如此

Mor*_*rum 15 java eclipse ant

我更新到java 1.7.0_52(或那里)后,我无法运行我的Ant build.xml.我已经在我的Windows 7笔记本电脑上本地运行了多年Eclipse - 但是这个最新的jave jdk更新了一些不同的东西(?).

BUILD FAILED
C:\workspace\WaterAspectsModel3\build.xml:329: 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 "D:\Morten\Java\jdk1.7.0_52"
Run Code Online (Sandbox Code Playgroud)

这是我的jdk!所以JAVA_HOME指向一个jdk(从错误消息中也可以看出).我一直在路径中使用带有bin文件夹的JAVA_HOME.我已经配置了Eclipse - 外部工具配置 - JRE指向相同的D:\ Morten\Java\jdk1.7.0_52(通过"Separate JRE"设置).我已经尝试了许多其他配置 - 都没有运气.

我一直在阅读这里和其他地方的大量答案,并认为我已经尝试了所有的建议.大多数情况似乎是JAVA_HOME实际指向jre的情况,只需要纠正为jdk或者有一个";" 在路径或类似的东西.这些似乎都不适用于我的情况.

有什么建议?

Vin*_*ini 34

通过Eclipse运行ANT时,我收到了相同的消息.

什么对我有用:

  1. 在Eclipse中,访问菜单:"Window - > Preferences";
  2. 在树上访问"Ant - > Runtime";
  3. 访问Classpath选项卡;
  4. 展开"全局条目"项;
  5. 在全局条目内,路径tools.jar是错误的.它指向Java的旧版本;
  6. 我删除了错误的条目,并添加了正确的条目"Add External Jars"按钮.有效.

在此输入图像描述


小智 9

Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext来自这里的解决方案非常有用并为我工作.


par*_*fal 6

真正的信息是Ant无法找到com.sun.tools.javac.Main.

哪个,以及最新的"Sun"(Oracle)JDK是1.7.0_13(或者可能_14,但绝对不是你的安装目录所指的"_52")的事实,让我觉得你没有使用发行版Ant承认.您可以通过运行jar tvf $JAVA_HOME/lib/tools.jar并查找该类来验证这一点.

该蚂蚁手册关于谈判的方式与不同的编译器工作.由于我只使用了"Sun"编译器,我担心我无法给你任何指示.


编辑:您也可以尝试fork="yes"在构建文件中进行设置.这应该运行编译器可执行文件而不是尝试调用编译器类.

  • JAVA_HOME变量更有可能指向JRE而不是JDK.有两个Java发行版,只有"Java Development Kit"包含**javac**命令和开发人员使用的其他有用的二进制文件 (4认同)