Question

As of October 2010, is GNU's Java compiler dead? Are there any active alternatives (especially for compiling Java to native code)?

LLVM solutions would be preferred.

Was it helpful?

Solution

You could use IKVM and Mono's ahead of time compiler to generate native code.

EDIT

There is an example at the bottom of this page.

OTHER TIPS

A more pertinent question would be whether it was ever really alive. Consider these issues, from its own website:

  • 1.2 support is 'still incomplete'.
  • 1.3 ditto.
  • The project was last updated over a year ago [as of October 2009].
  • Currently 'supports most of the 1.4 libraries plus some 1.5 additions.'
  • Doesn't support java.nio.
  • Doesn't support javax.naming ('complete but no providers').
  • Doesn't support javax.sql.
  • Doesn't support AWT or Swing.
  • Doesn't support localization via java.text.
  • State of java.security is 'unknown'.
  • Doesn't check permissions in java.lang.reflect.
  • Does it compile generics?
  • Huge chunks missing out of other packages, e.g. nearly 50% of java.util.
  • No annotations.
  • No script engine.
  • Nearly all of javax.xml.* (recursively) is missing.
  • No org.omg.CORBA.
  • Practically no org.w3c.
  • Current comparison with JDK 1.6 is here. Note that this appears to add percentages to give a completely meaningless total.

And note that it isn't billed as a 'Java compiler'. It is a compiler for a subset of Java known as GNU CLASSPATH. Which in turn hasn't been updated since Feb 2009.

If it isn't dead it is certainly lying down.

EDIT It's dead. GCJ is no longer listed as a GNU package. And after four years of zero activity we are entitled to assume the same about GNU CLASSPATH.

One alternative to compile Java to native is Excelsior JET.

I think not that it is dead. It has only few important. Which result in a slow development. There are 3 fact because it has only few important today:

  • It based on the GNU Classpath. Since Java is open source (OpenJDK) there is no large need for another open source Java. This has slow down the development speed.
  • The Java was faster in the last years. The GCJ output is not faster. In many cases it is slower.
  • The GNU Classpath has many incompatibility.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top