
Mac OS Runtime for Java
~ the last words ~
Apple announced a beta of its own Java runtime in November 1996, four months after Netscape and Microsoft had both started shipping Java in browsers, and released version 1.0 in January 1997. Mac OS Runtime for Java was Apple's own implementation of JDK 1.0.2 rather than a licensed build of Sun's, with its own class loader and its own windowing glue, plus two pieces called JManager and JBindery that let a Mac application host applets or wrap a Java program into something double-clickable. From Mac OS 8 onward it came in the box.
For about two years that was a reasonable place to be. Then it stalled. The 2.x line reached Java 1.1.8 and stopped there permanently. Sun released JDK 1.2 in December 1998 and called it Java 2, and classic Mac OS never got any of it, which meant no Swing and no collections framework for the entire installed base. Apple's attention had moved to Mac OS X and to a separate Java implementation for it, which left MRJ carrying the entire installed base of pre-X Macs on a 1998 language.
What kept it alive was not applets. It was Oracle. MRJ 2.2.5 was certified in May 2001 for use with Oracle Applications 11.5.3 through Internet Explorer 5, which is how a dead-end virtual machine ends up in the procurement documents of companies that had never heard of it. Macworld's write-up of that release describes fixes for caching and for two-byte international systems, which tells you who was still filing the bugs.
The final release came on 8 April 2003 as MRJ 2.2.6. Its entire reason for existing was HTTPS: Oracle 11i clients needed to reach their application servers over an encrypted connection, and 2.2.5 could not. Apple's advice to everybody who was not in that situation was to not install it. It was the last version of anything Java-shaped to run on Mac OS 8.1 through 9.2.2.
~ the record ~
| Born | January 1997, MRJ 1.0, an implementation of Sun's JDK 1.0.2 |
|---|---|
| Peak | bundled with Mac OS 8 and 9 and used as the Java engine by Internet Explorer for Mac |
| Killed | 8 April 2003, version 2.2.6, the last release for Mac OS 8.1 through 9.2.2 |
| Lifespan | six years and three months |
| Made by | Apple Computer |
| Killed by | Mac OS X, after stalling at a Java version nobody else was on |
~ the version that never came ~
The gap between 1.1.8 and Java 2 is the whole story of this product. Every Java feature that made the language tolerable to write in arrived after the point where MRJ froze, so a Mac developer in 2001 targeting the installed base was writing against a language five years old while the books on the shelf described a different one.
Apple did ship a modern Java later, on Mac OS X, and maintained its own port of HotSpot for years. That ended too: from Java 7 onward Apple stopped shipping a JRE at all and Mac users got theirs from Oracle directly. The virtual machine whose last release existed to keep an Oracle client working was eventually replaced by Oracle.
~ what it was wired into ~
Internet Explorer for Mac used MRJ as its Java engine, which made Apple's VM the default way applets ran on a Macintosh for most of the period anyone was running applets. Netscape did not. Netscape shipped its own Java interpreter and kept using it until a Mozilla MRJ plug-in appeared in late 2000 to force the swap, and the instructions people wrote for doing that swap were not kind about the alternative. The Berkeley Drosophila Genome Project, which published a Mac setup guide for its sequence tools, called Netscape's built-in interpreter crummy and told readers to install the MRJ before even configuring a browser.
That same page carries the best summary of MRJ's late condition that anyone bothered to write down, because the lab had gone to the trouble of reporting the problems: "We have contacted Apple about the problems with the MRJ, and they are aware of the problems, but they do not consider it a priority to repair these problems." They recommended pinning to MRJ 2.1.4, two releases behind, because the newer ones were worse with both browsers.
~ applets on a windows machine ~
I met Java applets the way most people in Turkey did, through a browser on a PC with a 56k modem, waiting for a gray box to finish loading and then discovering it was a stock ticker. There was no Mac anywhere near me in 1997, and MRJ is the part of that experience I never saw: the layer underneath, on the other platform, doing the work that Netscape's interpreter was doing badly on mine. Nothing about an applet told you whose virtual machine had run it. That was supposed to be the point of the whole exercise.
~ the wrong year on the tombstone ~
MRJ's death date is recorded incorrectly in the place most people will look. Wikipedia's infobox gives the final release as 8 April 2004. Apple's own support article for 2.2.6 carries a release table that reads 2003-04-08, and the archived copy of that page has a last-modified stamp of 7 April 2004, which is almost certainly where the stray year came from: somebody read the edit date as the release date. Macintosh Repository, which hosts the installer, files it under 2003.
So the grave says 2003, one year earlier than the encyclopedia, on the strength of Apple's own table. It is a small correction about a small product, and it is the kind of error that propagates forever once it lands in an infobox.
~ leave a rose ~
an anonymous tribute. one rose per visitor per day.
@}-->-- ... roses left here
~ leave a wreath ~
a rose fades by morning. a wreath stays on this grave for good, with your name on it.
from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.
» one email a week: new graves and the anniversaries of the dead. subscribe
other software: Microsoft XNA, Wang Laboratories, Wibiya, WordPad
also died in the 2000s: vSocial, MobileStar, Emulation Zone
~ leave a note ~
visitors before you have left these graveside notes. anonymous welcome.