用Java所写出来的程序之所以能够跟多种硬件平台执行,最大的功臣就是除了SUN自己本身提供这些硬件平台Java执行环境之外,其它的厂商也投入相当多的心力在Java执行环境的开发,像是IBM所开发的Java系列产品,功能甚至比SUN本身提供的还要强大。
Java程序并不像其它程序语言,最后被编译成所在平台的机器语言后再执行,而是先编译成一个中间的字节码 (byte code),然后才到装有Java虚拟机器 (Java Virtual Machine, JVM)上的硬件去执行,这也就是为什么Java程序能够跨平台的主要原因。
JVM目前已有多种平台的版本,像是Solaris、Linux、Windows、Macintosh等,除了这些较大型的操作系统外,还有针对各个小型的系统设计的JVM,像是PDA、手机、Java Card等。
整个Java的执行环境可以统称为JRE (Java Runtime Environment),它除了包括JVM之外,还有给浏览器所使用的Java Plug-in。