Each client machine must run Java interpreter which performs runtime execution of Java bytecodes. |
Java interpreter is written in POSIX compliant ANSI C and needs to be ported to and conventionally compiled (once) on each individual platform. |
Once the interpreter is ported, application developers don't need to worry at all about platform specificity and differences between native compilers. |
They write portable Java which is compiled by platform independent Java compiler and executed on Java interpreter, ported to various platforms. |