General Information on gcj
Recently, gcj (GCC's Java frontend) has become quite useable. In fact, it already supports most of the Java Language and the accompanying APIs. This page is based on my experience with the 2001-04-09 snapshot of gcj.
While compiling a JAR-file directly with gcj should work, it usually takes an awful lot of memory. Therefore, using a script to compile each .class-file individually will help those poor hackers who can't upgrade their memory (or don't want to afford it just for using gcj). Here (make-gcjlib) is a generic Makefile which facilitates the process of building shared gcj libraries.
It seems that gcj doesn't currently support java.util.ResourceBundle correctly (or I just didn't get it to work). Here is a patch (java-getopt-1.0.8-gcj.diff.gz) which just hard-codes the English language messages into the source-code.
gcj -o jdeps -pipe -O9 -fno-bounds-check --main=smr.JavaDeps.JavaDeps jdeps.jar
JGL 3.1.0 (Java Generic Library)
zip -d jgl3.1.0.jar "com/objectspace/jgl/voyager/*"
zip -d concurrent.jar "EDU/oswego/cs/dl/util/concurrent/misc/SynchronizationTimer*"
unzip log4j-full.jar org/log4j/helpers/RelativeTimeDateFormat.class zip log4j.jar org/log4j/helpers/RelativeTimeDateFormat.class
The distributed jacorb.jar contains some references to AWT and Swing classes which aren't supported by gcj. After removing those classes you also have to replace HTTPClient/DefaultAuthHandler.class with this AWT-free version: DefaultAuthHandler.class, DefaultAuthHandler.java.gz
zip -d jacorb.jar \ "HTTPClient/BasicAuthBox*" \ "org/jacorb/imr/util/ImRManagerGUI*" \ "org/jacorb/imr/util/ImRModel*" \ "org/jacorb/imr/util/ImRPOATableModel.class" \ "org/jacorb/imr/util/ImRServerTableModel.class" \ "org/jacorb/imr/util/ImRTableCellEditor.class" \ "org/jacorb/imr/util/ImRTreeCellRenderer.class" \ "org/jacorb/imr/util/RefreshWindow.class" \ "org/jacorb/imr/util/AddServerWindow.class" \ "org/jacorb/imr/util/ConnectWindow.class" \ "org/jacorb/ir*" \ "org/jacorb/naming/namemanager*" \ "org/jacorb/orb/domain/gui*" \ "org/jacorb/poa/POAMonitorImpl*" \ "org/jacorb/poa/POAManagerMonitorImpl*" \ "org/jacorb/poa/gui/beans/*" \ "org/jacorb/poa/gui/pm/*" \ "org/jacorb/poa/gui/poa/*" \ "org/jacorb/util/CAD*" \ "org/jacorb/util/CapsuleThread.class" \ "org/jacorb/util/ThreadSystemProperties*" \ "org/jacorb/util/WeakHashtable.class"
Revision: 1.1, cmeerw.org/prog/gcj/|
Last modified: Mon Apr 16 22:58:20 2001
Christof Meerwald <email@example.com>