Can't Resolve Jdk. Internal Package

Can't Resolve Jdk. Internal Package

NetBeans seems to be not able to resolve jdk.internal.* classes, but other internal API (i.e. com.sun.*) has no problem resolving.

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

Is this 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
1

1 Answer

This is javac's restriction. By default, javac does not read classes from rt.jar. It reads from a symbol file, which only contains standard API and some internal API (e.g. com.sun., com.oracle. and sun.*).

To disable this mechanism, I can use javac -XDignore.symbol.file=true option.

For Maven, edit POM file like the following.

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

Now, I can build project without error, but Error notification remains on NetBeans editor UI. To remove these error, I append -J-DCachingArchiveProvider.disableCtSym option in NETBEANS_HOME/etc/netbeans.conf file.

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

Finally, I removed all error from NetBeans environment.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Alexander Ross
Author

Alexander Ross

Alexander Ross has covered the video game industry for a decade, writing deep dives on game design, esports tournaments, VR developments, and gaming culture.