Chapter 5. Apple Extensions

Apple ships a nonstandard JVM with proprietary extensions. There?I've said it, and the cat is out of the bag. So why isn't Apple lumped into the same category as other vendors that ship proprietary JVMs? Why has Apple not been accused of trying to co-opt Java for sinister purposes? Put simply, Apple's JVM extensions are just that?extensions. They don't change what Java is, but add additional functionality on top of and around a normal Java environment. Apple ships a complete implementation of not just the Java Runtime Environment (JRE), but a full Java Development Kit (JDK). The extensions just include some icing on the standard Java cake.

Apple's Java implementation is fully compliant with any Java 2/JDK 1.3/4-based "pure" Java application. Certain vendors ship incomplete JVM implementations for strategically competitive reasons, in opposition to technologies such as RMI and CORBA. Apple's extensions to Java, however, principally address weaknesses in the Java platform. Careful application development lets you support these extensions while still maintaining excellent cross-platform compatibility. This chapter explores these extensions and shows how they can add to standard Java programs (like the editor from the last chapter).

When comparing Apple's extensions to the efforts of other vendors (Microsoft in particular), keep the following in mind:

  • Apple's extensions are (to the developer) just classes that allow you to more easily access Mac OS X functionality.

  • The extensions do not add to the language model itself (e.g., additional keywords).

  • The full Java 2 Standard Edition stack is included.

  • Apple's JVM is compliant with all relevant Java specifications.