我在使用Eclipse构建一些我的Ant脚本时遇到了问题(一些构建得很好,其他人没有#)。基本上,我在Eclipse Mars.1 Release(4.5.1)控制台中没有输出。当我在命令行上运行时,我的build.xml
可以正常使用ant。我能够在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)
其中other人询问了Stackoverflow。
我注意到的另一个奇怪的事情是,控制台上方有一行文字显示哪个java
显示正在使用的java
版本,而且工作脚本与非 - 工作。使用jdk1.7.0_79
工作的ant构建脚本,而失败的脚本使用/System
安装的1.6。
答案 0 :(得分:4)
我不知道为什么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)或为什么它没有给我一个警告!
无论如何,我上面发布的错误似乎有几个原因,但是你可以尝试一下。
答案 1 :(得分:3)
在Eclipse Oxygen,Java 1.8和Ant上部署到tomcat7时遇到了几乎相同的问题。 Eclipse的控制台不输出任何错误消息。当我在build.xml文件上单击Run Ant时,它只是说“已终止”。 WTF
要解决这个问题,我必须将所有内容设置为java 1.8,特别是ant的运行时JRE。但是“Java编译器” - &gt; “编译器合规性级别”必须仅设置为java 1.7。 实际上它非常简单。好的类路径设置有时可能很棘手;)特别是没有任何错误消息。
不要忘记检查您的ANT_HOME设置:Eclipse - &gt; Prefs - &gt;运行时 - &gt; “恢复默认值”应该足够了。 (Eclipse默认带有Ant 1.10.1,在运行时需要Java8。)
并且:如果它适用于某些build.xml文件,则只使用ant-build进程覆盖工作区设置。要解决此问题:点击“运行方式” - &gt; “Ant Build ... ”(不是“Ant Build”)并检查你的类路径(对于ant)和JRE设置到Java 1.8
此致
只需检查您的ANT_HOME设置。