我正在尝试使用反射从JAR文件加载一个类。此JAR文件有一个类,该类实现了另一个JAR文件中的接口。包含接口的JAR文件是项目所知的,因为它在其构建路径中。这个JAR文件也在client 6的两个文件夹中,分别是“JBoss”和"common/lib“。
当我尝试使用类java.net.URLClassLoader的loadClass方法动态加载该类以创建对象时,就会出现问题。对于由项目和JAR文件共享的接口,将抛出ClassNotFoundException。我通过以下方法获取ClassLoader:
public static ClassLoader getClassLoader(final String fileName) {
final File file = new File(fileName);
URL url;
ClassLoader classLoader = null;
try {
url = file.toURL();
final URL[] urls = new URL[]{url};
classLoader = new URLClassLoader(urls);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return classLoader;
}我必须使用这个ClassLoader加载这个类,因为这个类是File变量,它包含对JAR的引用,而这个JAR不在JBoss中。
我是否必须在JBoss的不同文件夹中包含带有接口的JAR?
发布于 2012-07-22 21:59:44
您只能引用Jboss类路径中的类。因此,如果jboss没有加载jar,就无法加载它。
https://stackoverflow.com/questions/11594826
复制相似问题