c = x.loadClass("com.sun.rio.demos.hello.packing");
改成
c=Class.forName("com.sun.rio.demos.hello.packing");
试试

解决方案 »

  1.   

    c=Class.forName("com.sun.rio.demos.hello.packing").newInstance();
      

  2.   

    上面Class.forName("com.sun.rio.demos.hello.packing");说的对。
      

  3.   

    我用了tenix的方法出现了java.lang.ClassNotFoundException: com.sun.rio.demos.hello.packing的异常,而且x是我自己定制的classloader,我在里面做了一些自己的操作,所以我必须用x.loadclass装载类
      

  4.   

    我在没有包结构的例子中实验过这个方法没有问题,但是放在com.sun.rio.demos.hello包中就出现了这些问题,所以我猜应该是包结构带来的问题,请大家帮我想想办法,谢谢!!!
      

  5.   

    动态加载的程序放在什么包里?
    另外Class.forName为什么会抛异常?
      

  6.   

    动态加载的类放在package com.sun.rio.demos.hello包中,如下
    package com.sun.rio.demos.hello;
    public class packing
    {
    public Object Run(MyObj o,Object arg1,Object arg2)
    {
    return o.Go(arg1,arg2);
    }
    }调用c = Class.forName("com.sun.rio.demos.hello.packing");
    出现java.lang.ClassNotFoundException: com.sun.rio.demos.hello.packing
      

  7.   

    动态加载的测试程序也在com.sun.rio.demos.hello包
      

  8.   

    我这样用没有问题,
    package com.sun.rio.demos.hello;import java.lang.reflect.Method;/**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class Test { public static void main(String[] args) {
    Class c = null;
    try {
       c =Class.forName("com.sun.rio.demos.hello.Packing"); 
    } catch (ClassNotFoundException e1) {
       e1.printStackTrace();
    } Object ob = null;
    try {
       ob = c.newInstance();
    } catch (InstantiationException e2) {
       e2.printStackTrace();
    } catch (IllegalAccessException e2) {
       e2.printStackTrace();
    }

    Class[] arg3 = {(new MyObj()).getClass(),(new Object()).getClass(),(new Object()).getClass()};
    Method m3 = null;

    try {
      m3 = c.getMethod("Run", arg3); 
    } catch (SecurityException e3) {
      e3.printStackTrace();
    } catch (NoSuchMethodException e3) {
      e3.printStackTrace();
    }
    }
    }
      

  9.   

    我用也没有问题:MyObj.java
    -------------------------------
    package com.sun.rio.demos.hello;public class MyObj
    {
     public Object Go(Object arg1,Object arg2)
     {
       return new Object();
     }
    }
    -----------------------------
    packing.java
    -----------------------------
    package com.sun.rio.demos.hello;public class packing
    {
    public Object Run(MyObj o,Object arg1,Object arg2)
    {
    return o.Go(arg1,arg2);
    }
    }
    --------------------------
    Test.java
    ----------------
    package com.sun.rio.demos.hello;import java.lang.reflect.Method;public class Test {
    public static void main(String[] args){
    Class c = null;
    try {
       c = Class.forName("com.sun.rio.demos.hello.packing");
    } catch (ClassNotFoundException e1) {
       e1.printStackTrace();
    } Object ob = null;
    try {
       ob = c.newInstance();
    } catch (InstantiationException e2) {
       e2.printStackTrace();
    } catch (IllegalAccessException e2) {
       e2.printStackTrace();
    }

    Class[] arg3 = {(new MyObj()).getClass(),(new Object()).getClass(),(new Object()).getClass()};
    Method m3 = null;
    try {
      m3 = c.getMethod("Run", arg3); 
    } catch (SecurityException e3) {
      e3.printStackTrace();
    } catch (NoSuchMethodException e3) {
      e3.printStackTrace();
    } }}