从Jar类调用外部类方法

时间:2016-09-07 11:23:34

标签: java

我创建了一个班级“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();

1 个答案:

答案 0 :(得分:0)

我认为这是因为您没有向ClassLoader提供任何父URLClassLoader,以便它可以找到A而不是B,请尝试这样做:< / p>

ClassLoader cl = new URLClassLoader(
    new URL[] {new URL(jarFullPath)}, Thread.currentThread().getContextClassLoader()
);

将[{1}}用作与上下文Thread.currentThread().getContextClassLoader()对应的父ClassLoader