无法解析 jdk.内部包

  • 本文关键字:内部 jdk java netbeans
  • 更新时间 :
  • 英文 :


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

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

这是NetBeans的bug吗?

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

这是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环境中删除了所有错误。

最新更新