gpt4 book ai didi

java - 转储源自 jar 文件的 java.lang.Class

转载 作者:行者123 更新时间:2023-11-30 11:57:58 24 4
gpt4 key购买 nike

我正在尝试找到一种方法来收集所有从 jar 文件加载的 java.lang.Class,但忽略源代码本身的那些。

我找到了 java.lang.instrument.Instrumentation 接口(interface)并认为它可能会达到目的,但结果并不完全......可用函数之一“getAllLoadedClasses”将所有 java.lang.Class 转储出来(这很好),但它不仅从 jar 文件中加载一次转储,而且还从源文件中加载一次。

是否有允许我们自定义设置的配置,以便仅转储源自 jar 文件的 java.lang.Class,或者有更好的解决方案?

我想在代码表示中实现如下所示。

java.lang.Class[]
classesLoadedFromJars = getClassesLoadedFromJars();

for (java.lang.Class class : classesLoadedFromJars) {
// ..............
}

建议中的一两句话会很有帮助!

提前致谢。

最佳答案

该类的类加载器应该能够为您提供有关从何处加载某个类的线索。

ClassLoader loader = myClass.getClassLoader()
if (loader instanceof URLClassLoader) {
URLClassLoader uLoader = (URLClassLoader)loader;
URL cURL = uLoader.getResource(myClass.getName().replace('.', '/')+".class");
}

如果 cURLjar:// 开头,类源自一个 jar 文件

关于java - 转储源自 jar 文件的 java.lang.Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com