java虚拟机类加载器
来源:互联网 发布:sql没有商业智能项目 编辑:程序博客网 时间:2024/06/04 20:09
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
bootstrap classloader
|
extension classloader
|
system classloader
bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类,是最顶层的ClassLoader,它比较特殊,不是java.lang.ClassLoader的子类,而是用C++编写集成在JVM中的。在Hotspot的JVM中,在执行java的命令中使用-Xbootclasspath选项或使用- D选项指定sun.boot.class.path系统属性值可以指定附加的类。这个加载器的在JVM启动的时候用来加载一些核心类的,比如:rt.jar
,resources.jar
,charsets.jar
,jce.jar
等,可以运行下面代码看都有哪些:
大家可以通过执行以下代码来获得bootstrap classloader加载了那些核心类库:
URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();
for (int i = 0; i < urls.length; i++) {
System.out.println(urls.toExternalform());
}
在试验过程中,如果你使用eclipse,可能遇到如下问题:
Multiple markers at this line
- Access restriction: The type 'Launcher' is not API (restriction on required library 'C:
\Program Files\Java\jre1.8.0_51\lib\rt.jar')
- Access restriction: The method 'Launcher.getBootstrapClassPath()' is not API
(restriction on required library 'C:\Program Files\Java\jre1.8.0_51\lib\rt.jar')
- Access restriction: The method 'URLClassPath.getURLs()' is not API (restriction on
required library 'C:\Program Files\Java\jre1.8.0_51\lib\rt.jar')
PS:这是由于“sun.misc.Launcher”默认是受保护的,不是一个公共的api,解决办法有种
1.在eclipse中去掉“jre system libary”,手工添加jdk目录下的jar包
2.在eclipse选项版中,Windows->preferences->java->compiler>errors/warning->forbidden reference
error修改为warning
转自:http://www.cnblogs.com/ceres/
- Java虚拟机--类加载器
- java虚拟机类加载器
- Java虚拟机----类加载器
- java虚拟机类加载器
- java虚拟机类加载器
- Java虚拟机加载器
- Java虚拟机类加载
- java虚拟机类加载
- java虚拟机类加载
- Java虚拟机类加载
- java 虚拟机 类加载
- Java虚拟机加载类
- Java虚拟机:类加载
- Java虚拟机--类加载器分析
- Java虚拟机学习 - 类加载器(ClassLoader)
- java虚拟机类加载器介绍
- Java虚拟机学习 - 类加载器(ClassLoader)
- 深入了解java虚拟机-----类加载器
- Kafka配置SASL身份认证及权限实现文档
- 回应『Angular有哪些地方比Vue更优秀?』
- spring的设计模式
- 鲁迅的文章从教科书里消失了,花60年时间终于弄明白了他是在骂谁
- 数据库遭劫持勒索两种方式避免数据丢失(针对MySQL,Redis,MongDB)
- java虚拟机类加载器
- mysql-python安装出错
- @media-屏幕窗口变化时理解
- shell变量测试
- 51单片机定时器
- 插入排序的改进2:希尔排序
- 线程同步示例
- Springmvc通过注解解决日期转换问题
- Spring MVC使用FreeMarker调用java静态方法