package dync;public class InDyncJar
{
  public InDyncJar()
  {
    System.out.println("Dync load ok...");
  }
}把这个类编译,打成一个jar包,然后删掉这个文件编译好的class动态调入如下,我觉得在当前的ClassLoader中调入是不可能的了,只能退而求其次了
package test;import java.net.URLClassLoader;
import java.net.URL;
import dync.InDyncJar;public class DyncLoadJar
{
  static public void main(String[] args)
  {
    try
    {
      System.out.println("ok");
      Object objRef = null;
      System.out.println("before load jar");
      try
      {
        Class clazz = Class.forName("dync.InDyncJar");
        objRef = clazz.newInstance();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
      
      //  把下面的改成你打好的jar文件的地址,注意要写成url形式的
      URL url = new URL("file:///d:/src/DyncLoad.jar");
      
      URL[] urls = new URL[]{ url };
      
      ClassLoader loader = new URLClassLoader( urls, DyncLoadJar.class.getClassLoader() );
      System.out.println("after load jar");
      try
      {
        Class clazz = loader.loadClass("dync.InDyncJar");
        objRef = clazz.newInstance();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();  
    }
  }
}把这个类编译,然后运行,命令行命令从头到尾是
javac -d . InDyncJar.java
jar cvf DyncLoad.jar dync
del dync\InDyncJar.class
javac -d . -classpath %CLASSPATH%;DyncLoader.jar DyncLoadJar.java
java -classpath . test.DyncLoadJar
输出如下
ok
before load jar
java.lang.ClassNotFoundException: dync.InDyncJar
        at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:130)
        at test.DyncLoadJar.main(DyncLoadJar.java:18)
after load jar
Dync load ok...