2013-10-08 150 views
0

我正在使用一个简单的java编辑器,它使用ant来调用JDK无法从可执行文件jar中找到javac编译器

在日食一切工作正常,我能够建立build.xml。问题是,当我出口我的编辑器的可执行的JAR,我尝试建立一个项目的build.xml,我得到了著名的问题:

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 (x86)\Java\jre7" 

重要:

如果我运行我的jar编辑器cmd它的工作正常,但如果我双击编辑器 jar它不起作用,我得到着名的问题(无法找到javac编译器...)。

注意:

  1. JAVA_HOME指向JDK

  2. 我使用的ant.jar蚂蚁launcher.jar

  3. Eclipse指向我的JDK安装。

  4. 的tools.jar被添加到JDK/lib文件夹

+3

“也许JAVA_HOME不指向JDK。” - 它看起来像您的JAVA_HOME指向JRE安装而不是JDK。 JRE不包含javac和其他开发工具。改变你的JAVA_HOME环境变量,重启eclipse,你应该很好。 – JimmyB

+0

“可执行JAR”是一个包含您的类,必需的JDK类和JVM的JAR文件。它不包括Java编译器。 –

回答

2

解决的办法是在javac target上设置fork属性为yes。

+1

它为我工作。你能解释一下这个问题以及叉子如何帮助吗? – Kamal

1

你JAVA_HOME看起来是指向安装JRE,而不是JDK的安装。 (错误消息说它是"C:\Program Files (x86)\Java\jre7"!)

JRE不包括任何Java开发工具...例如Ant试图加载/使用的javac Java编译器。

如果你真的在你的机器上安装了JDK,那么你所需要做的就是改变JAVA_HOME环境变量,以便引用它......而不是JRE。否则,你还需要下载并安装相关的JRE。

+0

否JAVA_HOME指向JDK。 –

+0

@ oussama.elhadri为什么命名为'jre7'呢? – Ingo

+0

我不知道,但我的JAVA_HOME指向** C:/ Program Files(x86)/Java/jdk1.7.0_25/**,当我在eclipse上做同样的事情时,一切工作 –

1

也许JAVA_HOME并不指向JDK

JAVA_HOME当前设置为C:\ Program Files文件(x86)的\的Java \ jre7

的信息是相当丰富,重点突出,是不是?

相关问题