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