 For instance, a Java program has to be written to use the Java virtual machine (JVM) and associated libraries as a platform but does not have to be adapted to run for the Windows, Linux or Macintosh OS platforms.However, the JVM, the layer beneath the application, does have to be built separately for each OS.Ordered roughly, from more common types to less common types