我扩展了classloaderMyClassLoader loader=new MyClassLoader("类路径");使用 Class clas = loader.loadClass("com.test.AA");com.test.AA a=(com.test.AA)clas.newInstance();以上都没问题,可以正常使用.我想隐式加载我的AA,但又不想把我的class放在 classpath中.
如 
Thread.currentThread().setContextClassLoader(loader)
com.test.AA  a=new com.test.AA();怎么也不行,好象tomcat能实现,那位知道怎么解决?

解决方案 »

  1.   

    在编译时指定楼主的class的path
      

  2.   

    你需要動態加載的class不放在classpath裡  虛擬機到哪裡去找
    你以為虛擬機是超人啊   
      

  3.   

    加载之前需要制定classpath的,不过好像使用url的方式也可以加载,具体没有研究过
      

  4.   

    如果你使用任何jvm自己的ClassLoader都必须在其指定的搜索路径放置你需要加载的类。
    不同的ClassLoader会在不同的目录寻找类,所以你的类必须放在一些路径里面,比如CLASSPATH。如果你的意思是不配置任何环境加载类,那就需要用URLClassLoader
    他可以在运行的时候根据路径参数到目录里面寻找加载的类。
    我想这个是你需要的吧。
      

  5.   

    谢谢大家的关注,搞定,自己实现了一个classloader 继承 URLClassLoader.