我写了一个test.jar 文件,里面有两个类:(使用jbuilder 9)
public class Father{
    public Father(){}
    public void test(){}
}
public class Classlib(){
    public ClassLib(){
      try{
       Class.forName("myp.child").newInstance();//my.child在下面有
      }catch(Exception e){
        
      }
    }
}现在我又建一工程,有以下两个类:
package myp;
import test.*;//(test.jar)public class child extends Father{
    public child(){}
    public void test(){
       System.out.println("ok");
    }
}
public class start{
   public start(){
     Classlib cl = new Classlib();//JAR文件中的类    
   }
}
public static void main(String[] args) {
    start s = new start();
}结果报错:
java.lang.ClassNotFoundException: myp.child 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:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:140) at cpKernel.ListenPort.<init>(ListenPort.java:15) at cpserver.MainClass.<init>(MainClass.java:20) at cpserver.MainClass.main(MainClass.java:24)我的问题是:
我在jar中使用Class.forName()可不可以调用Jar外部的类?可以的话,如何在jar内部调用一个外部的类呢?

解决方案 »

  1.   

    import 关键字不是用来引用jar包的
    引用的是class你可以把test.jar添加到你的第二个项目的当前包中Tools/config library 下面添加一个library Aproject/project properties/path/require library 点ADD按钮将library A 添加到当前项目,往里面添加test.jar
      

  2.   

    我没有用import 来引用JAR包,而是引用了JAR包里的类我已经把jar包入到libary中了
    mport  test.*;//(test.jar)   只是引用类,没有引用JAR
      

  3.   

    我找到原因了!!只要把现有工程的class目录加载到jdk 的PATH中就可以了!!