当前位置: 首页 > 面试题库 >

查找运行时Java可用的所有类

邹普松
2023-03-14
问题内容

我试图找到Java运行时可用的所有类的名称,并在Guava中使用反射将代码成功实现了一些成功,例如:

ClassPath classPath = ClassPath.from(ClassLoader.getSystemClassLoader());
contextClasses = classPath.getAllClasses();

这似乎在某种程度上可以使我获得大约2500个类名,但是并没有找到所有的类名,特别是我确实需要了解的所有类,特别是java.lang,java.util等。

我应该为此使用其他类加载器吗?我也尝试过

Thread.currentThread().getContextClassLoader()

任何指针将不胜感激。谢谢

恩文

我从这篇文章中使用了更多信息:如何列出特定类加载器中加载的所有类,以实际实现答案中建议的解决方案。这可以得到所有标准的Java库(大约500
ish),但不是我以前在我的方法中得到的库。我可以与以前的产品结合起来,获得所需的一切。

感谢大家的帮助。


问题答案:

对于1.5版以下的JVM,您可以使用http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/Instrumentation.html#getAllLoadedClasses()。



 类似资料:
  • 问题内容: 我想做这样的事情: 因此,我想查看应用程序的Universe中的所有类,当我发现一个来自Animal的类时,我想创建一个该类型的新对象并将其添加到列表中。这使我可以添加功能,而不必更新事物列表。我可以避免以下情况: 通过上述方法,我可以简单地创建一个扩展Animal的新类,它将自动被拾取。 更新:10/16/2008 9:00 AM太平洋标准时间: 这个问题引起了很多反响-谢谢。 从响

  • 我有以下Java代码,可以在图中找到从一个节点到另一个节点的路径,如何修改它,以便显示所有可能的路径。这里只显示了一条路径,它是一个循环? 输出:路径:[1、2、3、4、1] 对于节点1和4之间的路径,正确的输出应该是: 第一条路径:1- 第二条路径:1- 代码:

  • 问题内容: 假设我有一个包含数百种方法的大型程序。并且根据输入的性质,程序流程正在改变。 想我想对原始流程进行更改。查找呼叫层次结构/参考并了解流程非常麻烦。 我在Eclipse中对此有任何解决方案吗?还是插件?例如,我只需要按时间顺序的方法名称的日志即可。然后,我不必担心与“给定输入”无关的方法 更新:在eclipse中使用调试模式或添加打印消息是不可行的。该程序太大了。:) 问题答案: 您可以

  • 问题内容: 当我尝试做这样的事情时,我意识到我真的需要上大学! 无论如何,我都有一个字符串数组(275),我需要遍历它们并用Java创建所有可能对的字符串。 我一直在学习递归,但是我找不到答案。 问题答案: 如果对和不同,请执行以下操作: 如果没有,请执行以下操作: 请注意,我假设数组包含唯一的字符串!

  • 问题内容: 我有一个正在使用的Java应用程序,但我刚刚意识到该程序必须在不到一分钟的时间内返回一个值,但不知道如何查找或显示运行该程序所花费的时间。如何找到运行程序所需的时间? 问题答案: 您可以使用比较时间。它将返回时间(以纳秒为单位)。 返回最精确的可用系统计时器的当前值,以纳秒为单位。 您可以这样使用它: 有用的链接:

  • 问题内容: 获取运行Java应用程序时使用的所有类的列表的最简单方法是什么? 假设通过运行来调用: 运行该程序后,我想列出运行该程序时使用过的所有类: 在这种情况下,如果某个类已在程序执行期间由类加载器加载,并且如果存在此类静态块,则该类的静态块将被运行,则将该类定义为正在使用。 问题答案: 使用标志 verbose:class* 运行Java * 要将其附加到文件中: 等等 它还列出了定义这些文