繁体   English   中英

从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM