Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 遍历所有JDK类_Java_Reflection_Classpath - Fatal编程技术网

Java 遍历所有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 有什么想法吗?您可

我正在做一个代码编辑器,我正在做自动完成。我希望以编程方式获得JDK附带的所有类的列表

例子包括:

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的路径。所以我会用它来索引所有的类。谢谢