2.1 What Java API's are
supported? How complete is the support?
Matt Welsh writes:
Just look in the 'libjava' directory of libgcj and see what classes are
there. Most GUI stuff isn't there yet, that's true, but many of the other
classes are easy to add if they don't yet exist.
I think it's
important to stress that there is a big difference between Java and the many
libraries which Java supports. Unfortunately, Sun's promise of "write once, run
everywhere" assumes much more than a JVM: you also need the full set of JDK
libraries. Considering that new Java APIs come out every week, it's going to be
impossible to track everything.
To make things worse, you can't
simply run Sun's JDK classes on any old JVM -- they assume that a bunch of
native methods are also defined. Since this native method requirement isn't
defined by the JDK specs, you're effectively constrained to using Sun's JVMs if
you want to use Sun's JDK libraries. Oh yes -- you could also reimplement all of
those native methods yourself, and make sure they behave exactly as Sun's do.
Note that they're undocumented!
Another thing I seem to
recall from the early days of Java on Linux, Didn't Sun work on the language but
actually distribute someone else's JDK for a while (I think without
permission/attribution)
(blackdown ring a bell?)