Memiliki arsitektur netral dengan kemampuan dapat dipindahtukarkan (portable) adalah sesuatu yang
tidak mudah. Tidak seperti C atau C++, yang tidak memiliki spesifikasi yang diikuti, sehingga
implementasinya menjadi berbeda-beda, walaupun ada ANSI C yang portable.
Java cukup portable bilamana mengikuti spesifikasi yang ada, yang ini berarti semua komponen/API
yang dikembangkan menggunakan Java, dapat digunakan dan dijalankan disemua JVM yang
dikembangkan, sebagai contoh membuat aplikasi menggunakan Sun Java SDK, kemudian dijalankan di
BEA JRockit JRE.