【发布时间】:2014-01-03 15:55:52
【问题描述】:
我正在使用 intellij IDEA 进行开发,我注意到当 IDEA 在 JAVA 7 上运行(我在 Windows 7 上工作)时,maven 插件在下载依赖项时出现问题。但是在 JAVA 6 上运行它没有问题。
这里是idea.log的摘录
2014-01-03 14:48:07,861 [ 366414] WARN - ution.rmi.RemoteProcessSupport - at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
2014-01-03 14:48:07,861 [ 366414] WARN - ution.rmi.RemoteProcessSupport - at com.sun.proxy.$Proxy20.isCanceled(Unknown Source)
2014-01-03 14:48:07,861 [ 366414] WARN - ution.rmi.RemoteProcessSupport - at org.jetbrains.idea.maven.server.MavenServerProgressIndicatorWrapper.isCanceled(MavenServerProgressIndicatorWrapper.java:58)
2014-01-03 14:48:07,861 [ 366414] WARN - ution.rmi.RemoteProcessSupport - at org.jetbrains.idea.maven.server.TransferListenerAdapter.transferFailed(TransferListenerAdapter.java:127)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - ... 5 more
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - Caused by: java.net.SocketException: Invalid argument: connect
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.DualStackPlainSocketImpl.connect0(Native Method)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
2014-01-03 14:48:07,862 [ 366415] WARN - ution.rmi.RemoteProcessSupport - at java.net.Socket.connect(Socket.java:579)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at java.net.Socket.connect(Socket.java:528)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at java.net.Socket.<init>(Socket.java:425)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at java.net.Socket.<init>(Socket.java:208)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:147)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
2014-01-03 14:48:07,863 [ 366416] WARN - ution.rmi.RemoteProcessSupport - ... 13 more
注意这一行
Caused by: java.net.SocketException: Invalid argument: connect
我在寻找问题的解决方案,发现了这个link
我按照建议做了以下操作
确保我的 /etc/hosts 文件中有
127.0.0.1 localhost将
-Djava.net.preferIPv4Stack=true添加到我的idea64.exe.vmoptions 使文件看起来像这样
-Xms128m -Xmx2048m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50
参数在idea.log中确认
2014-01-03 14:42:01,495 [ 48] INFO - #com.intellij.idea.Main - IDE: IntelliJ IDEA (build #IC-133.193, 02 Dec 2013 00:00)
2014-01-03 14:42:01,496 [ 49] INFO - #com.intellij.idea.Main - OS: Windows 7 (6.1, amd64)
2014-01-03 14:42:01,496 [ 49] INFO - #com.intellij.idea.Main - JRE: 1.7.0_45-b18 (Oracle Corporation)
2014-01-03 14:42:01,496 [ 49] INFO - #com.intellij.idea.Main - JVM: 24.45-b08 (Java HotSpot(TM) 64-Bit Server VM)
2014-01-03 14:42:01,497 [ 50] INFO - #com.intellij.idea.Main - JVM Args: -Xms128m -Xmx2048m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=96m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Xbootclasspath/a:D:\Programs\IntelliJ IDEA Community Edition 13.0\lib\boot.jar -Didea.paths.selector=IdeaIC13
2014-01-03 14:42:13,590 [ 12143] INFO - ution.rmi.RemoteProcessSupport - "C:\Program Files (x86)\Java\jdk1.7.0_45\jre\bin\java" -Djava.awt.headless=true -Xmx512m -Dfile.encoding=windows-1252 -classpath
但问题仍然存在。
这一定是 Java 7 的问题,它更喜欢 IPv6 而不是 IPv4。有谁知道如何解决这个问题?
感谢您的帮助。
【问题讨论】:
-
请给我一个SSCCE好吗?