在不同的平台或操作系统上部署软件，而不必开发不同的版本来面向不同平台。该想法可以追溯到20世纪70年代，UCSD Pascal系统在p-code上开发、运行。James Gosling提到UCSD Pascal（以及Smalltalk虚拟机）对Java虚拟机的设计有关键性的影响。美中不足的是，Java虚拟机在各种操作系统（Windows、Linux、Solaris、NetWare、HP-UX以及Mac OS）上有多种不同的实现，导致Java程序在不同的JVM虚拟机和操作系统上执行时有微妙的差别，所以