您将
Sample按照以下方式运行课程
> java Sample
如果需要一点魔术,请查看
-verbose:classoption 的输出,然后看到大量的以下行。
[Opened C:jdk1.6.0_14jrelibrt.jar][Loaded java.lang.Object from C:jdk1.6.0_14jrelibrt.jar][Loaded java.io.Serializable from C:jdk1.6.0_14jrelibrt.jar][Loaded java.lang.Comparable from C:jdk1.6.0_14jrelibrt.jar]......[Loaded java.security.cert.Certificate from C:jdk1.6.0_14jrelibrt.jar][Loaded Sample from file:/D:/tmp/][Loaded java.lang.Shutdown from C:jdk1.6.0_14jrelibrt.jar][Loaded java.lang.Shutdown$Lock from C:jdk1.6.0_14jrelibrt.jar]
您会看到从中
jrelibrt.jar加载了一堆类,远远早于由
Bootstrap类加载器(或Primordial)加载您的类。这些是运行因此由Bootstrap加载的Java程序的先决条件。
另一组罐子由
Extension类加载器加载。在此特定示例中,不需要lib中的任何类,
jrelibext因此不会加载它。但是,专门为扩展类加载器分配了从扩展库加载类的任务。
编辑: 除了标准平台Java类之外,Sun / Oracle还提供了一组jar,用于 扩展平台的核心API
。放在扩展lib文件夹中的jar会自动放置在classpath中,因此不需要显式包含在classpath中。这是关于同一主题的不错的官方文章。
最后,在Bootstrap和Extension完成加载后,
Sample由
Application类加载器加载您的类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)