运行时包这个名词,是在Java虚拟机第2版规范中第一次出现的,它指由同一个类装载器装载的、属于同一个包的、多个类型的集合。在允许两个类型之间对包内可见的成员(声明为受保护的或包访问的成员)进行访问前,虚拟机不但要确定这两个类型属于同一个包,还必须确认它们属于同一个运行时包——它们必须是由同一个类装载器装载的。这样,因为java.lang.Virus和来自Java API的java.lang的成员不属于同一个运行时包java.lang.Virus就不能访问Java API的java.lang包中的类型和包内可见的成员。之所以提出运行时包的概念,动机之一是使用不同的类装载器装载不同的类。启动类装载器装载核心Java API的class文件,这些class文件是最可信的。