【问题标题】:Can't resolve jdk.internal package无法解析 jdk.internal 包
【发布时间】:2014-07-13 07:59:58
【问题描述】:

NetBeans 似乎无法解析 jdk.internal.* 类,但其他内部 API(即 com.sun.*)没有问题解析。

Compile : "jdk.internal.org.objectweb.asm.ClassReader does not exist" <br>
(This package exists in rt.jar)

这是 NetBeans 错误吗?

NetBeans: 8.0 (Build 201403101706)<br>
Java: 1.8.0_20-ea; Java HotSpot(TM) 64-Bit Server VM 25.20-b20<br>
System: Windows 7 version 6.1 running on amd64

【问题讨论】:

标签: java netbeans


【解决方案1】:

这是 javac 的限制。默认情况下,javac 不会从 rt.jar 中读取类。它从一个符号文件中读取,该文件仅包含标准 API 和一些内部 API(例如 com.sun.、com.oracle. 和 sun.*)。

要禁用此机制,我可以使用 javac -XDignore.symbol.file=true 选项。

对于 Maven,编辑 POM 文件,如下所示。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <compilerArgument>-XDignore.symbol.file</compilerArgument>
  </configuration>
</plugin>

现在,我可以无错误地构建项目,但 NetBeans 编辑器 UI 上仍然存在错误通知。为了消除这些错误,我在 NETBEANS_HOME/etc/netbeans.conf 文件中附加了-J-DCachingArchiveProvider.disableCtSym 选项。

netbeans_default_options="... -J-DCachingArchiveProvider.disableCtSym=true"

最后,我从 NetBeans 环境中删除了所有错误。

【讨论】:

猜你喜欢
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 2012-12-06
  • 2012-10-11
  • 2019-01-14
相关资源
最近更新 更多