无法从可执行jar中找到javac编译器

时间:2013-10-08 13:44:05

标签: java ant

我正在开发一个简单的java编辑器,它使用 ant 来调用 JDK

在eclipse上一切正常,我能够构建 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"

重要的:

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

注意:

  1. JAVA_HOME指向 JDK

  2. 我正在使用 ant.jar ant-launcher.jar

  3. Eclipse指向我的 JDK 安装。

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

3 个答案:

答案 0 :(得分:2)

解决方案是在fork目标上将javac属性设置为是。

答案 1 :(得分:1)

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

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

如果您的计算机上确实安装了JDK,那么您需要做的就是更改JAVA_HOME环境变量,使其引用它...而不是JRE。否则, 还需要下载并安装相关的JRE。

答案 2 :(得分:1)

也许JAVA_HOME没有指向 JDK

JAVA_HOME目前设置为C:\ Program Files(x86)\ Java \ jre7

这条消息相当有用,而且重点是,不是吗?