Bodo has posted 2 posts at DZone. View Full User Profile

Java 6 on Mac. Worst release ever.

  • submit to reddit

Yesterday Apple finally released Java 6 for Mac OS 10.5.2. The whole community waited years to this day. But the release is broken because of several reasons.

Only supports 64 bit

This means that Java 6 doesn't run on 1 year old MacBooks or all early adopters of the Intel switch. A huge amount of people can't run 64 bit.

Another problem is that it only supports 64 bit applications. Bye bye applets in Safari.

No Cocoa support

Because of the lack of 64 bit libraries for cocoa it is not possible to use cocoa with Java 6. Nearly every Java application on Macs uses cocoa to make it look better on Mac OS. Some even are 100% cocoa, like Cyberduck. Because of that only a small percentage of Java applications can run on Java 6.

Apple knows this

Apple is well aware of this problems. The update doesn't make Java 6 the default vm, the preferences dialog even warns you if you want to make it the default vm.

So, what to do now?

We only have three choices from here:

  • Switch back to Windows / Linux for Java development
  • Use SoyLatte and help them to create the native gui pipeline
  • Ask Apple to fix this issues
In the long term no. 2 would be the best. A Java implementation by a large community would have faster release times. We can't wait for Apple to fix this issues.
Published at DZone with permission of its author, Bodo Tasche.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Jacek Furmankiewicz replied on Thu, 2008/05/01 - 9:58am

Go Ubuntu. :-)

 At least you get your JDK as soon as Sun compiles it.

Mike P(Okidoky) replied on Thu, 2008/05/01 - 10:59am

I wonder if we'll see less MacBooks at JavaOne this year.  Or is Apple dragging down progress within Sun because their employees are hooked on Macs?

Mats Henricson replied on Thu, 2008/05/01 - 11:42am

It is time for people to make a conscious choice about freedom! Is that flash-glitz and polished aluminium most important, or is it free software? Haven't people learned over the years? Going with free software is the only way to not being screwed.

Bruce Fancher replied on Thu, 2008/05/01 - 3:52pm

No Cocoa support?

Wait, didn't Sun sue Microsoft to stop them from integrating the Windows API into their version of Java?  What's the point of writing a Cocoa app in Java?  If you're writing a Mac application, use Objective-C.  If you're writing a Java application, make it 100% pure Java and make it cross-platform.


Bodo Tasche replied on Thu, 2008/05/01 - 4:02pm

If you want to integrate your Java app with Linux, Windows and Mac a small amount of Code is necessary to make everything look right and integrate well. E.g. on Mac it's normal for applications to use Growl, a notification system. But you can only use it if you can use a little cocoa glue code. That is not possible anymore.

And that's not the only problem. Java 6 can't be used in Safari, because of the 64bit nature. I am one of the lucky guys that own a 64bit machine. Many Mac-Users don't have a 64bit machine.

Umberto Zappia replied on Thu, 2008/05/01 - 4:23pm

The lack from Apple to support Java was seen way ahead, I own a 64bit arch Mac(lucky me), the only reason that keeps me still coding on it is the option to use multiple OSs through VMware, in fact I'm using 99% of the time Linux-Ubuntu, Solaris and Windows for my developing, and the remaining 1%.. to boot the OS X, I know it's weird, but at least I can develop my work and being freely to use OSS. 


Ian Heggaton replied on Thu, 2008/05/01 - 5:47pm

This means that Java 6 doesn't run on 1 year old MacBooks or all early adopters of the Intel switch.

I don't mean to quibble but, my 1.5 year old MacBook runs Java 6 just fine. As does my 1.5 year old iMac.

I do agree that this release sucks and don't disagree with your other complaints but it doesn't help your argument when you provide invalid facts.

Bruce Fancher replied on Thu, 2008/05/01 - 6:17pm in response to: Bodo Tasche

Not true. You can still use JNI to interface with native code, just like on any other platform.

Gregory Pierce replied on Thu, 2008/05/01 - 6:20pm in response to: Mats Henricson

For me personally I don't really care so much about 'free' software. I just care that my solutions actually work. Apple produced one that doesn't work well and that's a HUGE problem. That's no different than open source projects that ship with broken support for a wide variety of things because they didn't have manpower. Somehow the community is willing to forgive the open source project but they mercilessly condemn the commercial projects.


I don't believe that "free" is the pancea that everyone claims it to be. Some of the worse solutions to any number of problems are "free". If Apple's Java SDK were free, would the community actually jump in and write the entire GUI layer in anything less than several years time?

Michael Gardner replied on Thu, 2008/05/01 - 7:54pm

@Mats - Plenty of people install Ubuntu on their Macbook Pros.  I dual-boot into it myself.  Best of both worlds.

Behrang Saeedzadeh replied on Thu, 2008/05/01 - 8:04pm in response to: Bruce Fancher

@Bruce Fancher

 No, Sun sued Microsoft, because Microsoft had manipulated the syntax of Java via their introduction of delegates into the language.

James Imber replied on Fri, 2008/05/02 - 2:19am

Java is broken for the Mac... Where is the news?
Historically, Java support on the Mac has always been lame (new version always late, if they come at all; special code needed to work around special bugs, etc..) except for a few years.
I have assumed long ago that my Java app will not work flawlessly on a Mac.

Jess Holle replied on Fri, 2008/05/02 - 5:41am

Sun's primary complaints about Microsoft's Java implementation were:

  1. Removal of JNI
  2. Removal of RMI

There were various other smaller complaints, but these 2 removals were major (and intentional IMHO) stumbling blocks to write-once-run-anywhere imposed by Microsoft.  Microsoft's answer to both removals is that developers should be using Microsoft-specific alternatives to both technologies rather than even bothering with cross-platform portability.

The whole thing was somewhat tragic, but I really can't blame Sun for suing Microsoft here.

Michael Urban replied on Sun, 2008/05/04 - 11:11am in response to: Ian Heggaton

Well, it is definitely true that it only works on 64 bit Intel systems, as Apple specifically says that. So anyone who has one of the Core Duo Macs can't use Java 6. And the Core Duo Macs aren't that old really. Only the Core 2 Duos work.

Michael Urban replied on Sun, 2008/05/04 - 12:42pm

Regarding your "No 64 bit Cocoa libraries" point--Cocoa actually is 64 bit in Leopard, so certain "glue" code should work fine. Yes, Apple is no longer developing the full blown Java-Cocoa bridge. But that's not anything new. Apple deprecated that a few years ago and said it would not be developed any further.

Dmitry Leskov replied on Mon, 2008/05/05 - 4:38pm

My company sells a commercial Java SE 6 implementation for Windows and Linux, so we have a Commercial Use license for the Java SE technology. Many of our customers are interested in a Mac OS X version, but that would require us porting the standard API (all the native methods), whereas on Windows and Linux we use Sun's code. So a Mac port is not economically feasible for us at the moment, unless we have enough pre-orders.

I am wondering now if we could finance the porting effort with the help of the community. If we could port the API to the Mac, we could build the JDK for the Mac and make it freely available, and reuse the ported code in our own product.

Drop me a line at dleskov at excelsior dash usa dot com if you think this can work and have an idea on how to make it work.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.