gpt4 book ai didi

java - 将类从 Maven 依赖项加载到我的 ClassLoader

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:19 27 4
gpt4 key购买 nike

我有一个简单的 Java 项目,我想从我的 Maven 依赖项之一加载一个类。我正在使用这段代码:

ClassLoader currentThreadClassLoader = Thread.currentThread().getContextClassLoader();
ClassLoader currentClassClassLoader = TestGeneratorApplication.class.getClassLoader();
ClassLoader sysClassloader = ClassLoader.getSystemClassLoader();

String className = "My Class qualified name from my maven dependency";

Class<?> targetClass = ReflectionUtils.forName(className, currentThreadClassLoader);
Class<?> targetClass2 = ReflectionUtils.forName(className, currentClassClassLoader);
Class<?> targetClass3 = ReflectionUtils.forName(className, sysClassloader);

我正在搜索的三个类加载器给了我相同的消息(无法获取名称的类型... ClassNotFoundException)

当我执行我的方法时,我不知道在哪里搜索这个类。

我的 Maven 依赖是一个像 pom 中正常定义的 war :

<dependency>
<groupId>mygroupid</groupId>
<artifactId>myartefactid</artifactId>
<version>4.2.0-2</version>
<type>war</type>
</dependency>

提前致谢

最佳答案

尝试使用 Reflections.class.getClassLoader() 作为类加载器。

ReflectionUtils.forName(className, Reflections.class.getClassLoader());

顺便说一句,classLoaders 参数是可选的,您可以省略它,如下所示:

ReflectionUtils.forName(className)

if optional ClassLoaders are not specified, then both ClasspathHelper.contextClassLoader() and ClasspathHelper.staticClassLoader() are used

link

关于java - 将类从 Maven 依赖项加载到我的 ClassLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58818667/

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