2013-10-08 195 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

的信息是相當豐富,重點突出,是不是?

相關問題