2

就在最近,我的 Eclipse 安装已停止可靠地显示rt.jar. 悬停文档和内容辅助都不能显示任何非本地类型的 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]]]

我最初想知道 McAfee 访问扫描是否妨碍了我 - 它有一个可怕的习惯,在遇到 JAR 时会停下来 - 但我放心地看到我的设置仍然存在以忽略所有 JAR 文件(另外,如额外的好处,内容C:\Program...\Java)。

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

我尝试过的事情:

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

没有一个有效。

4

2 回答 2

4

触发该问题是因为我的 Eclipse 安装配置为使用我的本地 JRE,而不是我的 JDK。由于 JRE 不包含 Java 源代码(也不附加 Javadocs),Eclipse 被迫从 Web 检索此信息。据推测,某些网络延迟有时会导致问题。

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

于 2012-08-13T14:56:31.360 回答
3

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

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

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

于 2012-10-23T21:12:03.827 回答