迭代所有JDK类

sat*_*nam 6 java reflection classpath

我正在制作代码编辑器,我正在研究自动完成功能.我想以编程方式获取JDK附带的所有类的列表.

例子包括:

java.io.File
java.util.ArrayList
javax.swing.Action
Run Code Online (Sandbox Code Playgroud)

我已经找到了获取特定包的类的方法.例如,我可以获得所有开始的课程com.mypackage.foo.问题是我正在尝试获取加载了的类Bootstrap ClassLoader.在OSX JDK上,该类加载器显示为null.例如,如果我这样做String.class.getClassLoader(),那就是null.

有任何想法吗?

Evg*_*eev 2

您可以使用 java.util.jar.JarFile 打开 rt.jar 并迭代其条目。这是如何获取 rt.jar 的 URL 的方法:URL url = Object.class.getResource("String.class");