It's certainly not "official" but we already have Wine and Mono. I understand that they don't promise write once run anywhere but the support is pretty good. For awhile it was one of the only ways to get Netflix working on Linux based platforms.
.Net actually promises a bit more 'write once run anywhere' than Java. Java stuff is not, and does not seek to be, binary compatible across platforms. .Net is. I'd really love to see, once .Net is all open, browser makers to throw the CLR into the browser. Overnight it would release us from the tyranny of js and let us use basically any language we ever want.