A Java application has the ability to run on many different types of computers, devices, operating systems (e.g., Windows, Macintosh, Linux and UNIX), and application environments (e.g., Web browsers) without requiring any changes to its code (this technology is referred to by Sun as Write Once, Run AnywhereTM portability).