Tę właściwość Java ma za sprawą temu, że szyfr źródłowy programów pisanych w środku Javie kompiluje się do kodu pośredniego (tzw. bytecode). Powstały szyfr jest samowystarczalny odkąd systemu operacyjnego także procesora, oraz wykonuje go tzw. maszyna wirtualna, która (między innymi) tłumaczy szyfr wielofunkcyjny na szyfr dopasowany do specyfiki konkretnego systemu operacyjnego dodatkowo procesora. W tej chwili wirtualna urządzenie mechaniczne Javy jest poprzednio dostępna na rzecz większości systemów operacyjnych również procesorów.
Jednak z uwagi na to, że szyfr pośredni jest interpretowany, taki projekt jest wolniejszy niż kompilowany do kodu maszynowego. Z tego względu maszynę wirtualną nieraz uzupełnia się o kompilator JIT. Istnieją także niezależne od momentu Suna kompilatory Javy - przykładem podprojekt GCC o nazwie GCJ. W rezultacie powstaje szybszy kod, jednakowoż wolno go usuwać błędy na jednej z trudem platformie, i w takim przypadku nie jest przenośny.