追溯到20世纪70年代，UCSD Pascal系统在p-code上开发、运行。James Gosling提到UCSD Pascal（以及Smalltalk虚拟机）对Java虚拟机的设计有关键性的影响。美中不足的是，Java虚拟机在各种操作系统（Windows、Linux、Solaris、NetWare、HP-UX以及Mac OS）上有多种不同的实现，导致Java程序在不同的JVM虚拟机和操作系统上执行时有微妙的差别，所以一种应用可能需要在许多平台上进行测试才能确保正确性和稳定性，这造就了一个程序员间的笑