无法解析jdk.internal包

Tel*_*tha 2 java netbeans

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

编译错误:"jdk.internal.org.objectweb.asm.ClassReader不存在"
(此包存在于rt.jar中)

这是NetBeans的错误吗?

NetBeans:8.0(Build 201403101706)
Java:1.8.0_20-ea; Java HotSpot(TM)64位服务器VM 25.20-b20
系统:在amd64上运行的Windows 7版本6.1

Tel*_*tha 9

这是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>
Run Code Online (Sandbox Code Playgroud)

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

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

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