java - 无法解析 jdk.internal 包

标签 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 错误吗?

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

关于java - 无法解析 jdk.internal 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720665/

相关文章:

java - Netbeans 绑定(bind)

java - Netbeans 能否同时处理 32 位和 64 位版本的 Java?

Java/Netbeans 找不到库/包

java - Hibernate 的 javassist 应该导致这种行为吗?

Java JDBC : connect cannot be resolved error

java - 如何在 Jboss 中以编程方式监控连接池?

java - JOption 上的变量显示 2 次

java - 如何在javafx中嵌入PApplet?

java - 将我的对象返回到 HashSet 中

java - 打印哈希表内的多值数据