簡體   English   中英

在Eclipse中構建Ant時的SocketTimeoutException

[英]SocketTimeoutException when Ant building in Eclipse

我在使用Eclipse構建一些我的Ant腳本時遇到了問題(一些構建正常,另一些則沒有)。 基本上,我在Eclipse Mars.1 Release(4.5.1)控制台中沒有輸出。 當我在命令行上運行它時,我的build.xml可以正常運行。 我能夠在workspace/.metadata/.log中找到一些輸出,其中我發現以下錯誤消息:

!ENTRY org.eclipse.ant.launching 4 120 2016-03-03 09:58:38.197
!MESSAGE Error logged from Ant UI: 
!STACK 0
java.net.SocketTimeoutException: Accept timed out
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
    at java.net.ServerSocket.implAccept(ServerSocket.java:545)
    at java.net.ServerSocket.accept(ServerSocket.java:513)
    at org.eclipse.ant.internal.launching.launchConfigurations.RemoteAntBuildListener$ServerConnection.run(RemoteAntBuildListener.java:89)

其他人在Stackoverflow上詢問過的問題。

我注意到的另一個奇怪的事情是控制台正上方有一行文字顯示哪個java顯示正在使用的java版本,而工作腳本與非工作腳本不同。 使用jdk1.7.0_79工作的ant構建腳本,而失敗的使用/System安裝1.6。

我不知道為什么java 1.6不能為我工作,但最終我找到了我可以為ant構建更改Java的地方。 它位於Run/External Tools/External Tools Configuration.../<select failing build>/JRE 奇怪的是,在讓它工作然后嘗試切換回1.6之后,它在運行ant時給出了以下消息:

JRE version less than 1.7 is not supported. 

所以誰知道為什么1.6首先被選中(也許項目本身是1.6)或為什么它沒有給我一個警告!

無論如何,我上面發布的錯誤似乎有幾個原因,但是你可以試試這里。

在Eclipse Oxygen,Java 1.8和Ant上部署到tomcat7時遇到了幾乎相同的問題。 Eclipse的控制台不輸出任何錯誤消息。 當我在build.xml文件上單擊Run Ant時,它只是說“已終止”。 WTF

要解決這個問題,我必須將所有內容設置為java 1.8,尤其是ant的運行時JRE。 但是“Java編譯器” - >“編譯器合規級別”必須僅設置為java 1.7。 實際上它非常簡單。 好的類路徑設置有時可能很棘手;)特別是沒有任何錯誤消息。

不要忘記檢查您的ANT_HOME設置:Eclipse - > Prefs - > Runtime - >“Restore Defaults”應該足夠了。 (Eclipse默認帶有Ant 1.10.1,它在運行時需要Java8。)

並且:如果它適用於某些build.xml文件,則只使用ant-build進程覆蓋工作區設置。 要解決這個問題:單擊“運行方式” - >“Ant構建... ”(不是“Ant構建”)並檢查類路徑(對於ant)和JRE設置到Java 1.8

問候

那么只需檢查您的ANT_HOME設置。

暫無
暫無

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

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