[fedora-java] New Eclipse RPMs

Anthony Green green at redhat.com
Wed Mar 2 17:26:11 UTC 2005


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





More information about the fedora-devel-java-list mailing list