Java Virtual Machine & Runtime Environment
Basic Concept
When you write a program in C++ it's called source code. C++ compiler converts this source code into the machine code of underlying system (such as Windows) If you want to run that code on Linux you would need to recompile it with a Linux based compiler. Because of the difference in compilers, sometimes you need to modify your code.