On Tue, 2005-03-01 at 16:08 +0100, Peter Backlund wrote: > I'd like to know why gij is needed at all, when Eclipse is (supposedly) > compiled into a native binary? gij is just a tiny program that loads the requested class and invokes its main() method. It doesn't have any additional interpreter code above and beyond what's already in libgcj.so. There are a couple of approaches you can take to building a native executable with gcj. [1] Link your program together using "gcj --main=foo.bar.MainClass". This pretty much mirrors the C or C++ way of thinking. You end up with an executable whose "main()" is foo.bar.MainClass.main(). [2] Build your classes into .so files and load them on demand. This is what we're doing for Eclipse and (hopefully) all of the java programs in Eclipse. We use the tiny "gij" program to kick things off. It turns out that it's much simpler to get existing java programs to run using this second approach. For one thing, you can use all of the existing wrapper shell scripts and programs (/usr/bin/eclipse, /usr/bin/ant, etc) instead of having to create/link a new main executable. There are no real downsides to this approach either. AG