我写了一个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内部调用一个外部的类呢?
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内部调用一个外部的类呢?
引用的是class你可以把test.jar添加到你的第二个项目的当前包中Tools/config library 下面添加一个library Aproject/project properties/path/require library 点ADD按钮将library A 添加到当前项目,往里面添加test.jar
mport test.*;//(test.jar) 只是引用类,没有引用JAR