I motsetning til f.eks. C, kompileres ikke Java til maskinkode, men til plattformuavhengig bytekode som kjøres av et underliggende lag programvare kalt Java Virtual Machine (JVM). Javaprogrammer kan derfor kjøre på alle operativsystemer hvor det finnes en Java Virtual Machine.