JVM Vs CLR
August 6, 2009
CLR and JVM obviously handle and execute different languages of code.The JVM executes Java ByteCode for a given architecture, whereas the CLR executes MSIL – Microsoft Intermediate Language.
The JVM is a crucial component of the Java Platform. Because JVMs are available for many hardware and software platforms, Java can be both middleware and a platform independent. The use of the same bytecode for all platforms allows Java to be described as “compile once, run anywhere, which describes cross-platform compiled languages. The JVM also enables such unique features as Automated Exception Handling which provides ‘root-cause’ debugging information for every software error (exception) independent of the source code.
Microsoft’s .NET Framework, the Common Language Runtime (CLR) is programming that manages the execution of programs written in any of several supported languages, allowing them to share common object-oriented classes written in any of the languages. The Common Language Runtime is somewhat comparable to the Java virtual machine that Sun Microsystems furnishes for running programs compiled from the Java language. Microsoft refers to its Common Language Runtime as a “managed execution environment.” A program compiled for the CLR does not need a language-specific execution environment and can easily be moved to and run on any system with Windows 2000 or Windows XP.
The both provide JIT compilation and garbage collection. The .NET CLR provides far more functionality than the JVM, such as security management, COM marshalling & base class library support.