如何使用URLClassLoader加载本地的Class文件

2025-10-08 20:57:39

1、定义一个接口类方法

代码:我的包名称叫interFace

/**

 * Alipay.com Inc.

 * Copyright (c) 2004-2015 All Rights Reserved.

 */

package interFace;

/**

 * 

 * @author wb-lilei.u

 */

public interface commInterFace {

    public void sayHello(String hello);

}

2、2.定义实现类

代码:包名称为impl(注意这里的包后面会用到)

/**

 * Alipay.com Inc.

 * Copyright (c) 2004-2015 All Rights Reserved.

 */

package impl;

import interFace.commInterFace;

/**

 * 

 * @author wb-lilei.u

 * @version $Id: commInterFaceImpl.java, v 0.1 2015年11月19日 下午1:54:31 wb-lilei.u Exp $

 */

public class commInterFaceImpl implements commInterFace {

    /** 

     * @see interFace.commInterFace#sayHello(java.lang.String)

     */

    @Override

    public void sayHello(String hello) {

        System.out.println("hello" + hello);

    }

}

3、在命令行提示符(cmd)编译这两个文件:一定要一起编译单独编译实现类方法会不通过

javac  impl\*.java interFace\*.java

4、编写测试类方法:

import interFace.commInterFace;

import java.net.URL;

import java.net.URLClassLoader;

/**

 * Alipay.com Inc.

 * Copyright (c) 2004-2015 All Rights Reserved.

 */

/**

 * 

 * @author wb-lilei.u

 */

public class testLoadClass {

    /**

     * 

     * @param args

     */

    public static void main(String[] args) {

        try {

            URLClassLoader loader = new URLClassLoader(

                new URL[] { new URL("file:D:\\workspaces\\") });

//这里的D:\\workspaces\\是文件的根地址

            Class<commInterFace> myClass = (Class<commInterFace>) loader

                .loadClass("impl.commInterFaceImpl");

//impl.commInterFaceImpl是后面具体的地址因为一定要包含impl这一段这

//是因为在创建的时候使用了impl这个包所以一定要一起

            myClass.newInstance().sayHello("ssssssssssssss");

//利用Java反射机制创建实例测试方法

        } catch (Exception e) {

            // TODO: handle exception

            e.printStackTrace();

        }

    }

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢