The .Net model is something like this :
C# Code -> C# Compiler -> Managed Module (Win PE) -> CLR -> “Hello, world”
The code is compiled to a managed module which invokes CLR which in turn does the necessary work to run the code (assuming it’s an exe).
My initial understanding was that .Net is the Microsoft equivalent of Java Framework with CLR the MS equivalent of JVM. But the interesting hitch here is that the Managed module is a Win PE which means that any OS that wants to use .Net must accept and use the Win PE format too. My questions are:
- Is the theory so far correct?
- What are the chances of Linux/Unix/Solaris/OSX etc. supporting/implementing the Win PE format?
- Are there any alternatives that are currently being worked on to make the interoperability happen?
- What route does Java take to make it executable on different platforms?
You’re looking for Mono.
To answer your questions:
.jarfiles which are opened by the Java runtime in the same way that a.docfile is opened by Microsoft Word.