[英]From a jar file, calling the main method from a class that implements a class from outside the jar
[英]Calling a outside class method from Jar class
我创建了一个类“ Class B
”
package com.b
public class B
{
public void printMsg()
{
System.out.println("Called");
}
}
我用下面的“ Class A
”类创建了一个jar文件。
package com.a
import com.b
public class A extends B
{
}
当我尝试使用以下代码动态加载jar时,出现错误“ Class B
”,“ classnotfoundexception
”
ClassLoader cl = new URLClassLoader(new URL[] { new URL(jarFullPath) });
Class<?> cla = cl.loadClass(className);
Object obj = cla.newInstance();
我相信这是因为您没有向URLClassLoader
提供任何父ClassLoader
以便它可以找到A
但找不到B
,而是尝试以下操作:
ClassLoader cl = new URLClassLoader(
new URL[] {new URL(jarFullPath)}, Thread.currentThread().getContextClassLoader()
);
这种使用Thread.currentThread().getContextClassLoader()
作为父ClassLoader
对应于所述上下文ClassLoader
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.