通常不需要这样做。Java被许多程序使用,如果每个Java软件都包含它,将会占用更多的硬盘空间,并且必须为每个软件加载一个全新的JVM实例。此外,每次发现安全漏洞时,所有软件都必须更新。因此,通常只需在新计算机或操作系统安装后不久安装一次。偶尔会开发一些软件包,不假定系统上有Java,因此可能会包含自己的Java。有时还可能需要某种定制的JVM。这样做的主要原因是因为Java被数以亿计的设备使用。如果虚拟机或运行时不是如此广泛使用,我可以说服我的用户安装它(如果他们本身不是开发人员,通常会很困难),或者只是自己打包。如果您熟悉静态和动态库的概念,那么同样的问题也会出现。
您可能已经知道,JVM并不是一种软件。所有者有他们的实现,但其他人可以根据各种实际和合同要求制作自己的实现。抽象规范是具体实现,存在于许多平台上并来自许多供应商,可以是全部软件或硬件和软件的组合,运行时实例托管单个正在运行的Java应用程序。因此,总结一下,JVM是硬件和软件的组合,但并非所有Java包都包含在内,正如您所要求的那样,它甚至不理解Java源代码。引用: JVM更多地提供了一种定义实现外部行为(子系统、内存区域、数据类型和指令)的方式,这些实现在抽象内部架构中进行描述。