Slashdot Mirror


Apple Updates to Java 1.4.1

A user writes, "Apple has caught up with the times and updated their Java to 1.4.1, bringing it completely up to date with the newest release from Sun. It now takes advantage of Aqua and Quartz Extreme, is usable via Universal Access, and can be controlled through AppleScript." It provides 1149 new classes over 1.3.1, a new native I/O API, updated XML tools (SAX 1.0/2.0, DOM 1.0/2.0, XSLT), I18N and L10N enhancements for Unicode 3.0, regexes, IPv6, faster loading of applets, improved caching, storing of certs in the Keychain, faster UI, more Aqua-like UI ... and native Java applet support for Safari.

2 of 148 comments (clear)

  1. Documentation/Changelog/New futures by jeneag · · Score: 5, Informative

    Full release notes from Sun Microsystems on release 1.4.1, includes overview of changes and detailed description on many updated packages, etc.

  2. Re:1.3 and 1.4.1? by IvanXQZ · · Score: 5, Informative
    While it is (mostly) true that Java 1.4.1 is backwards compatbile with 1.3.1, it is not true that Apple Java 1.4.1 is backwards compatible with Apple Java 1.3.1, which is why both remain present for end users as well as developers. To wit, QTJava is different, JDirect no longer exists, the com.apple.mrj.* API's have all been deprecated or outright removed, a number of the environment properties have changed, etc. (this stuff is all documented in the Release Notes, which is required reading IMO). In addition, there are a very small number of incompatibilities between 1.3.1 and 1.4.1 in Sun Java itself, at least during compile time.

    So if your 1.3.1 app uses any Mac-specific functions, you may need to rewrite them for 1.4.1 compatibility. However, if it is bundled as a Mac OS X app, it will (as stated above) get 1.3.1 by default, so end-users will have no problems with any existing applications (that's the Apple Way).

    The rules for whether you get 1.3.1 or 1.4.1 are:

    command line:
    You get 1.4.1 by default. If you want 1.3, you need to execute:
    /System/Library/Frameworks/JavaVM.framework/Versio ns/1.3.1/Commands/java
    (javac is in the same directory if you need the compiler or other tools)
    btw I have no idea why there is a space in "Versions" above: if you see it, it shouldn't be there

    double-clicked jar files:
    You always get 1.4.1.

    Mac OS X bundles:
    You get 1.3.1 by default. How to specify 1.4.1 depends on whether the app was made with MRJAppBuilder (from the 1.3.1 Dev Tools) or Jar Bundler (from 1.4.1 Dev Tools). For MRJAppBuilder apps, add this line to YourApp.app/Contents/Resources/MRJApp.properties:
    com.apple.mrj.application.JVMVersion=1.4*
    For Jar Builder apps, in the YourApp.app/Contents/Info.plist file, in the Java section add a key called JVMVersion with a value of 1.4* (you can use the Property List Editor or a text editor).

    All this and more is documented in the Release Notes.

    Ivan.