Java类别加载器问题,谢谢。

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:58:12
类:Office.java
import java.net.* ;
public class Office{
public static void main(String args[]) throws Exception{
URL u = new URL("file:/d:/my/lib/") ;
URLClassLoader ucl = new URLClassLoader(new URL[]{ u }) ;
Class c = ucl.loadClass(args[0]) ;
Assembly asm = (Assembly) c.newInstance() ;
asm.start() ;
}
}
这是“java深度历险”中的一个例子。
我把URL u = new URL("file:/d:/my/lib/") ;中的路径无论怎么变,不管它存不存你在,都可以成功编译,运行。
这个路径是干嘛用的,在这里??
谢谢~~
主要试着两句不是很明白
URL u = new URL("file:/d:/my/lib/") ;
URLClassLoader ucl = new URLClassLoader(new URL[]{ u }) ;
如果路径d:/my/lib/下面什么都没有,或者路径根本就不存在,那这两句话是干嘛用的呢?

URL u = new URL("file:/d:/my/lib/") ;
是一个寻找路径
new URLClassLoader(new URL[]{ u }) ;
表示生成一个类加载器,这个加载器找类的时候可以自动从参数里提供的路径开始寻找,一般这里放上些JAR包,供被加载的类使用。
如果当前的路径已经在其它地方被设置了,或者当前类的LOADER,那么设置不设置也不那么重要。

”file:/d:/my/lib/”是一个字符串,你也就是你传入的参数只要是字符串可可以运行通过,除非URL(String string)构造函数中提供了异常处理,否则是不会报错的.