[英]Getting Error running javac.exe compiler message, while using Ant in Spring Tool Suite
[英]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.