Java has the portability of any other interpreted language (even though the Java itself isn't interpreted, the bytecode is). It'll work uniformly on any system for which a properly implemented virtual machine (which of course is written in a compiled language) without having to be recompiled.