to determine dependencies on JDK-internal APIs: jdeps -jdkinternals $your_JAR to determine your module dependencies: $jdeps -M -s $your_JAR You should use jdeps from a recent Jigsaw build. So the classes from tools.jar are moved into modules but it seems like they might not be available to the user. The modules containing these files will not, however, be mentioned in the application class path, i.e., in the value of the system property. Further down:Ĭlass and resource files previously found in lib/tools.jar and visible only when that file was added to the class path will now, in a JDK image, be visible via the system class loader or, in some cases, the bootstrap class loader. So as you observed, those files are gone. Existing code that assumes the existence of these files might not work correctly. JDK and JRE images will, as noted above, no longer contain the files lib/rt.jar, lib/tools.jar, lib/dt.jar, and other internal jar files. The section Removed: rt.jar and tools.jar describes this in more detail but Risks and Assumptions contains a good summary: Your problems are caused by the Project Jigsaw changes that went into the Java 9 EA build you seem to have used.