[英]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.