如果在 C:\ 下面有一个 Findme.class 的话,是不是应该如下使用呢? 
后面的参数是什么呢 classForname("C:\\Findme.class")为什么调试的时候总是没加载成功呢,都是 null 啊
public class PlanLoader extends ClassLoader { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
PlanLoader pl = new PlanLoader();
Class c = pl.loadClass("C:\\Findme", true);
}

public Class loadClass(String name, boolean resolve ) {
Class clas = null;
clas = this.findLoadedClass(name);

if( clas != null ) {
System.out.println(name);
return clas;
}
}

解决方案 »

  1.   

    classpath里面把C:\\Findme.class加进去久完了。
      

  2.   

    设置环境变量
    classpath=".;C:\Findme"
    就可以了。
      

  3.   

    不是这么加载的,要看 API 文档,它说 loadClass() 第一个参数是类名,不是文件位置。java -classpath C:\           PlanLoader类路径是文件夹或 jar/zip 包文件名。
      

  4.   

    要改class_path。
    class.forName()这个的参数是不带class后缀的完整类名。
      

  5.   


    想加载C:\abc.class 可是没有加载成啊,怎么回事啊,//加载部分的关键代码,帮忙再看看了
                URL url = null;
            try {
                url = new URL("file:C:/");
            } catch (MalformedURLException e3) {
                // TODO Auto-generated catch block
                e3.printStackTrace();
                }        URLClassLoader urlCL = new URLClassLoader(new URL[]{url});
            
                Class clazz = null;
            try {
                      clazz = urlCL.loadClass("Try.Findme");
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }// abc.java部分的代码
    package Try;public class Findme {
        public void ok(){
            System.out.print("you hava find me out");
        }
        
        public static void main(String[] args) {
        
        }
        
    }
      

  6.   

    http://www.blogjava.net/William/archive/2006/08/25/65804.html
      

  7.   


     try{                URL url = new URL("file:/d:/test/lib/");                URLClassLoader urlCL = new URLClassLoader(new URL[]{url});                Class c = urlCL.loadClass("TestClassA");                TestClassA object = (TestClassA)c.newInstance();                object.method();         }catch(Exception e){                e.printStackTrace();         } 
      

  8.   

    这个例子我看了,就是按照这个改的,我就是那么写的,把 abc.class 放在C:\下面,可是就是不管用啊
    url = new URL("file:/C:/");
    这样写,放在C下面问题吧,可就是出不来
      

  9.   

    你们实现自己的ClassLoader,但是内部却又使用UrlClassLoader,那你们为什么不直接使用UrlClassLoader来加载类呢?如果这个类存放在数据库中,你们要如何去加载它呢?
      

  10.   

    你还没有实现么?
    其实要实现自己的类加载器也比较简单,但是我不建议你这么做,当然建立在学习的基础上可以理解。
    如果你想实现类加载器我可以给你参考,但是你要自己去改代码,我写的类加载器是一个从数据库中加载类的加载器,你把它改成你需要的形式即可,我想你如果能够读出那个文件,就能够加载类,不懂法邮件到我邮箱[email protected]:package org.thc.databasejava;public class DatabaseClassLoader extends ClassLoader { public DatabaseClassLoader() {
    super();
    } public DatabaseClassLoader(ClassLoader parent) {
    super(parent);
    } protected Class<?> findClass(String name) throws ClassNotFoundException {
    GetJavaData gjd=new GetJavaData();
    Class cls=null;
    try {
    byte [] jdata= gjd.getClassData(name);
    cls=this.defineClass(name, jdata, 0, jdata.length);
    } catch (Exception e) {
    throw new ClassNotFoundException();

    return cls;
    }
    }
      

  11.   

    记住,不要覆盖loadClass方法,因为这个方法以及有很成熟的实现,而且是基于双亲委派模型规范的实现。
      

  12.   

    没加载成功,主要原因可能是你那个路径不是你的 class path
      

  13.   

    昨天刚看了关于这部分的东西
    http://nihuajie.info/?p=134

    当我没出现过