2013-02-26 142 views
12

我无法运行我的Ant build.xml,因为我已更新到java 1.7.0_52(或那里)。我一直在我的Windows 7笔记本电脑上通过Eclipse本地运行它多年 - 但是这个最新的jave jdk更新有些不同(?)。Ant“JAVA_HOME不指向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" 

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

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

有什么建议吗?

+0

你有你的ANT_HOME环境变量集吗?它是否也在'PATH'中?这是系统路径。 – 2013-02-26 20:15:36

+0

如何从你可爱的cmd.exe打印出'java -version'和'javac -version'?还有'JAVA_HOME'在那里告诉你什么? – sjas 2013-02-26 20:20:25

+0

尝试'ant -version'。 – 2013-02-26 20:21:11

回答

4

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

其中,最新的“Sun”(Oracle)JDK是1.7.0_13(或者可能是_14,但绝对不是您安装目录所指的“_52”),这让我觉得你是不使用Ant可识别的分布。您可以通过运行jar tvf $JAVA_HOME/lib/tools.jar并查找该类来验证此情况。

Ant Manual讨论如何使用不同的编译器。由于我只使用过“Sun”编译器,所以恐怕我不能给你任何指示。


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

+4

它更有可能是JAVA_HOME变量指向JRE而不是JDK。有两种Java发行版,只有“Java开发工具包”包含** javac **命令和开发人员使用的其他有用的二进制文件 – 2013-02-26 20:50:23

+1

@ MarkO'Connor - 尽管OP声称多次检查过,所以我看到没有理由否则,'tools.jar'的存在(或不存在)将是强有力的证据。让我觉得它可能是别的东西的是安装目录的版本号。 – parsifal 2013-02-26 20:59:03

+0

谢谢parsifal!我还没到那里,但“jar tvf tools.jar”清楚地表明这是一个来自完全不同项目的tools.jar。只需卸载并重新安装我的jdk。 – 2013-02-26 20:59:57

0

尝试将JAVA_HOME\bin添加到您的env PATH

+0

没有运气 - 相同的消息(...虽然具有完全相同的路径?) – 2013-02-26 20:14:03

+6

不,'JAVA_HOME'应该是你的'jdk'文件夹,bin路径应该在你的'PATH'环境变量中。 – 2013-02-26 20:14:26

+0

@SotiriosDelimanolis我已编辑我的答案 – 2013-02-26 20:16:57

24

我在通过Eclipse运行ANT时遇到了相同的消息。

什么工作对我来说:

  1. 在Eclipse中,进入菜单: “窗口 - >首选项”;
  2. 在树上访问“Ant - > Runtime”;
  3. 访问Classpath选项卡;
  4. 展开“全局条目”项目;
  5. Inside Global Entries,tools.jar的路径错误。它指向Java的一个较老的版本;
  6. 我删除了错误的条目,并添加了正确的“添加外部罐子”按钮。有效。

enter image description here

+0

谢谢 - 它为我工作。 tools.jar条目丢失。我弄明白了 – 2016-09-06 11:52:06

6

解决方案 “Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext” 从here是伟大的乐于助人,为我工作。

0

将JAVA_HOME添加到Eclipse-Preferences-Java-Build Path-Classpath变量中。

相关问题