簡體   English   中英

在 Eclipse 中使用 Ant 時出現運行 javac.exe 編譯器消息時出錯

[英]Getting Error running javac.exe compiler message, while using Ant in Eclipse

當我在 Eclipse 中運行 Ant 構建時,我收到以下錯誤消息並且 Ant 構建失敗。

錯誤信息:運行 javac.exe 編譯器時出錯

構建停止的行:

<javac destdir="${classes.home}" debug="on" fork="true" memoryinitialsize="512M" memorymaximumsize="1G">
        <classpath refid="classpath"/>
        <src path="${source.home}"/>
</javac>

有沒有人遇到過類似的問題? 或者有人知道這里出了什么問題嗎?

系統信息:Eclipse Helio,JDK 1.5

我有同樣的問題,問題是,在 eclipse java.home 中指的是 JRE 而不是 JDK。 我改變了它,構建成功。 您可以執行以下操作將其更改為 JDK:

Preferences > Java > Installed JRE's > Add... 對於'JRE Type'選擇'Standard VM' > Next > Directory:選擇你的JDK目錄(而不是JRE)(在我的例子中:C:\\Program Files\\Java\\jdk1. 6.0_16 ),按確定。

現在,您返回到“已安裝的 JRE”,在這里也選擇 JDK。

下面的帖子有助於找到解決方案。 JAVA_HOME 指向錯誤的地方

如果上面接受的答案沒有為您解決問題(因為它沒有為我解決),在按照上面接受的答案中的建議將 java.home 更新為 JDK 而不是 JRE 之后,轉到運行 -> 外部工具 - > 外部工具配置 -> 在左側菜單中選擇您的 build.xml -> 選擇 JRE 選項卡 -> 為單獨的 JRE 單選按鈕選項選擇 JDK(從下拉列表中) -> 單擊運行。

這應該可以解決問題。

我遇到了同樣的問題並從 javac 中刪除了屬性叉,問題就消失了。

可能 javac 問題是因為“javac.exe”不在您的系統路徑中,請編輯您的系統路徑並將您的 JDK 的 /bin 目錄添加到其中以更正此問題。

打開 shell 或命令提示符並嘗試鍵入:javac 以檢查系統路徑是否設置正確。

我遇到了同樣的問題,這是我的建議,也許它會對某人有所幫助。
實際上,消息Error running javac.exe compiler意味着出現問題。 問題是,究竟是什么。 當 Ant 運行帶有fork="true"標志的javac任務時,它不會打印任何錯誤詳細信息。 在我的情況下,即使我添加了verbose="true" ,它也沒有打印出來,如這里所建議的。 解決方案是在Ant 命令行中添加-verbose標志

ant -verbose

在此之后,Ant 開始打印完整的錯誤消息,因此您可以修復問題。

將 eclipse 配置為指向 JDK 而不是 JRE 對我不起作用。 通過進一步調查,我通過停止分叉構建過程解決了這個問題。 在您的 build.xml 中,從<javac>標記中刪除屬性fork

接受的答案對我不起作用。 但是在 Ant 中右鍵單擊並將Java 運行時環境 (JRE)設置為Java開發工具包 (JDK)對我有用

Abhi Rampal 的回答是一步一步的,就像我在日食中解決問題的方式一樣。

轉至運行 -> 外部工具 -> 外部工具配置 -> 在左側菜單中選擇您的 build.xml -> 選擇 JRE 選項卡 -> 為單獨的 JRE 單選按鈕選項選擇 JDK(從下拉列表中) -> 單擊運行。

我通過檢查 Windows 7 中的環境變量解決了這個問題。我發現JAVA_HOME指向 C:\\ Program Files (x86) \\Java\\jdk1.6.0_31,而它應該是 C:\\ Program Files \\Java\\jdk1.6.0 _31. 如果你想知道如何閱讀這篇文章

如果您在 Eclipse 中運行 ant,請單擊 run as --> Ant second option 並選擇 JDK 路徑並再次運行構建。

嘗試釋放一些主內存。 關閉占用大量內存的程序,並盡可能停止占用大量內存的進程。

我已經嘗試了所有方法,但在我設置之前沒有任何效果(在您的情況下是fork='no'或 fork='false')並且完美地為我工作

我刪除了 fork="true" 並且我通過了那段代碼。 有這個問題的人可能會感興趣的是,現在,在該行,我得到了輸出:

'Since fork is false, ignoring memoryMaximumSize setting.'

所以如果你需要保持你的 fork="true" 設置,這可能是 memoryMaximumSize 的問題,如上所述。

我解決了這樣的問題:

我的 Java 主文件夾路徑錯誤。 它應該是C:\\Program Files (x86)\\Java\\jdk1.5.0_15但它是C:\\Program Files (x86)\\Java\\jdk1.5.0_15\\bin

我們在 Windows 構建機器上遇到了同樣的問題,而在本地(在 unix 機器上)一切都解決了。 Fork = true 也沒有幫助,它導致 Process fork failed 異常也僅在構建服務器上

研究

經過一些研究,我們發現類路徑可能太長了。 我們在 Windows 機器上本地重新創建了確切的文件夾結構,我們遇到了同樣的問題,我們看到類路徑太長(我們使用 -v 和 -d 來詳細說明它有多長),這就是錯誤的原因.

解決方案

解決方案是創建一個 jar,其中僅包含所有庫的清單,有關更多詳細信息,請參閱此答案

嘗試將 memorymaximumsize="1G" 更改為 memorymaximumsize="512M"。

對我來說,它是 WEB-INF/lib 目錄中的備份庫。 我在主庫中有多個 lib 目錄。 並且類路徑將它們都包括在內,導致 javac 命令變得太長。

我刪除了這些目錄,它對我有用。

這是一個非常簡單的問題。 基本目錄路徑有許多通向實際文件夾的子文件夾。 例如:/folder1/folder2/.../.../folderN/{project}

減少基本目錄路徑大小,它會很容易編譯。 例如:D:/{project}

晚點再謝我。

大多數情況下,項目文件夾的長路徑會使構建失敗。 即使在從命令行運行時,也總是會發現這種情況。 只需縮短您的路徑:

{Drive Letter}/{Checkout 項目文件夾}

和 ant 命令肯定會編譯 java JDK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM