当试图在rt.jar中显示类的Javadoc时,Eclipse会超时

就在最近,我的Eclipse安装已停止可靠地显示rt.jar任何类的Javadoc信息。 hover文档和内容辅助都不能为任何非本地类型显示Javadoc。 这个问题是零星的,Javadocs有时可以完美地工作几个小时。

查看工作区日志,我看到如下消息:

 !ENTRY org.eclipse.jdt.ui 4 10001 2012-08-13 10:03:58.050 !MESSAGE Internal Error !STACK 1 Java Model Exception: Java Model Status [Timed out while retrieving the attached javadoc for String {key=Ljava/lang/String;} [in String.class [in java.lang [in C:\Program Files\Java\jre6\lib\rt.jar]]] ] at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:808) at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1037) at org.eclipse.jdt.internal.core.BinaryType.getAttachedJavadoc(BinaryType.java:995) at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:463) at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:619) at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:565) at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo2(JavadocHover.java:557) at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:163) at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:129) at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:85) at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166) !SUBENTRY 1 org.eclipse.jdt.core 4 1012 2012-08-13 10:03:58.050 !MESSAGE Timed out while retrieving the attached javadoc for String {key=Ljava/lang/String;} [in String.class [in java.lang [in C:\Program Files\Java\jre6\lib\rt.jar]]] 

我最初想知道迈克菲的按访问扫描是否会妨碍它 – 它遇到JAR时会有一个停止的习惯 – 但是我确信看到我的设置仍然存在以忽略所有JAR文件(加上,如同一个额外的好处, C:\Program...\Java的内容。

以前有人遇到过这个问题吗? 有没有办法增加这里应用的超时值?

我尝试过的事情:

  • 增加存储在Preferences> Java> Edit> Content Assist> Advanced> Timeout中的值,以从附加的Javadoc(ms)中获取参数名称 ,但它对我的问题没有明显影响。 这并不奇怪,因为它从未声称会影响基于hover的超时。
  • 创建一个新的工作区,没有效果。
  • 仔细检查McAfee设置 – JAR显然未扫描。
  • 在访问扫描日志上观看McAfee似乎没有显示出来的情况正在咀嚼rt.jar
  • 在监视器上慢慢地大声喊叫。

没有人工作过。

该问题已被触发,因为我的Eclipse安assembly置为使用我的本地JRE,而不是我的JDK。 由于JRE不包含Java源代码(也未附加Javadocs),因此Eclipse不得不从Web检索此信息。 据推测,一些网络滞后有时会引发问题。

我通过在Preferences> Java> Installed JREs中添加对本地JDK的引用并删除对旧JRE的引用来解决这个问题。

我在使用Eclipse 3.7.1时遇到了同样的问题,并通过访问来解决它

窗口 – >首选项 – > Java – >已安装的JRE – >执行环境 – > JavaSE-1.7

然后我选择了jdk选项而不是jre7