Java 遍历所有JDK类
我正在做一个代码编辑器,我正在做自动完成。我希望以编程方式获得JDK附带的所有类的列表 例子包括:Java 遍历所有JDK类,java,reflection,classpath,Java,Reflection,Classpath,我正在做一个代码编辑器,我正在做自动完成。我希望以编程方式获得JDK附带的所有类的列表 例子包括: java.io.File java.util.ArrayList javax.swing.Action 我已经找到了为特定包获取类的方法。例如,我可以得到所有以com.mypackage.foo开头的类。问题是我试图获取用引导类加载器加载的类。在OSX JDK上,类加载器显示为null。例如,如果我执行String.class.getClassLoader(),那就是null 有什么想法吗?您可
java.io.File
java.util.ArrayList
javax.swing.Action
我已经找到了为特定包获取类的方法。例如,我可以得到所有以com.mypackage.foo
开头的类。问题是我试图获取用引导类加载器加载的类。在OSX JDK上,类加载器显示为null
。例如,如果我执行String.class.getClassLoader()
,那就是null
有什么想法吗?您可以使用java.util.jar.jar文件打开rt.jar并迭代它的条目。这就是如何获取rt.jar的URL:URL=Object.class.getResource(“String.class”)代码>这可能会有帮助。是的,我在谷歌搜索数小时时看到了这一点,哈哈。我不想做检测,因为它很粗糙,需要提供JVM参数。底部的“黑客”解决方案只提供已经加载的类。所以当我运行它时,它只显示了2个类,而不是数千个。我的程序如何知道rt.jar的位置?我希望它能在所有操作系统和所有计算机上运行,而不仅仅是在我的计算机上。getResource(String.class)的运行方式似乎很好。这提供了到jar的路径。所以我会用它来索引所有的类。谢谢