gpt4 book ai didi

java - 类加载器 loadClass 抛出 ClassNotFoundException

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

String pathToJar = "C:\\Users\\dtn\\jb_workspace\\helloworld-mdb\\target\\jboss-as-helloworld-mdb.war";

URL[] urls = { new URL("jar:file:///" + pathToJar+"!/") };
URLClassLoader urlcl = new URLClassLoader(urls);
urlcl.loadClass("org.jboss.as.quickstarts.mdb.HelloWorldTopicMDB");

我得到的异常是:

Exception in thread "main" java.lang.ClassNotFoundException: org.jboss.as.quickstarts.mdb.HelloWorldTopicMDB

当我调查问题时,我看到 HelloWorldTopicMDB.class 文件存储在 WEB-INF/classes 中。

这能以某种方式解决问题的根源吗?由于我尝试使用其他 jar 文件,将包名放在 jar 目录结构的根目录下,因此没有错误。

非常感谢您的回复。

最佳答案

在适当的war文件中,编译后的类总是在WEB-INF/classes中,而运行时需要的jar在WEB-INF/lib中。

这绝对是您问题的原因。这resource应该可以帮助您从 war 文件中加载类。

我必须说,虽然这看起来很不正统。通常 Web 服务器从 war 文件加载类。请问您为什么要这样做?

无论如何,希望这对您有所帮助。

关于java - 类加载器 loadClass 抛出 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205441/

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