迭代所有JDK类

时间:2015-05-02 07:41:07

标签: java reflection classpath

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

示例包括:

java.io.File
java.util.ArrayList
javax.swing.Action

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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