What does platform means ?
The answer really depends on the context on the "platform" word.
But when you speak about the java platform, most of the time it's about the JVM + JRE + JDK, it's the whole Java Pack.
Why the JVM differs from OS to OS ?
Why can't you simply use the Windows Sun's JVM on your linux, well first thing Linux and Windows don't execute binaries files the same way, so you must have two different binary versions. Plus you can't really access files or interact with the system the same way on the two OS.
What versions of the JVM are available ?
- Sun's JVM (oracle's now)
- IcedTea JVM
- KVM (for JME)
- CVM (JME too)
- Apache Harmony
- Oracle JRockit
- And a lot more
Why so many versions of the JVM ?
Simply because the java platform is basically a bunch of specifications on "How to run Java applications".
So anybody can create its own valid JVM as long as it respects the specifications.
And about .NET ?
See @Jon Skeet's answer :)
Resources :