Why do we call Java platform independent language when it still requires platform dependent JVM to get executed? How is the Java platform independent when we need to have JVM on every machine to run Java programs?