[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Running AppleCommander GUI?



In article 
<0b0fea8d-4af9-4359-acc2-26cf16cd2d56@h7g2000yqa.googlegroups.com>,
 BLuRry <brendan.robert@gmail.com> wrote:

> On May 26, 11:35 am, schmidtd <schmi...@my-deja.com> wrote:
> > On May 26, 10:52 am, Steven Hirsch <snhir...@gmail.com> wrote:
> >
> > > First, a disclaimer:  I do not like Java.
> >
> > Yes, yes.
> >
> > > Does anyone know the magic incantation for getting the GUI up on 
> > > Linux?
> >
> > There's a reason Rob bundled AppleCommander into an executable on 
> > Windows and an app on Mac.  And there's a reason why I hide the 
> > Java command line of ADTPro behind a script for Unix-alikes.  It's 
> > complicated.
> >
> > First, give full qualification to the jars you need.  The 
> > classpath, or -cp command line switch will do that for you:
> >
> > -cp 
> > /usr/lib/java/swt-gtk-3.5.1.jar:/wherever/AppleCommander-1.3.5.jar
> >
> > But then you also need to pull the main class out of the manifest; 
> > that is: com.webcodepro.applecommander.ui.AppleCommander
> >
> > Then, there are some native libraries for SWT too, aren't there? 
> > There are on Windows and Mac.  For those, you need to give the - 
> > Djava.library.path= command line switch, and point to those, too.
> >
> > So I can get you as far as that - there's still the issue of 64-bit 
> > SWT native libraries, which I trust you know where are.  A full 
> > invocation might look like this:
> >
> > java -Djava.library.path=/path/to/SWT/jnilibs -cp 
> > /usr/lib/java/swt- gtk-3.5.1.jar:/wherever/AppleCommander-1.3.5.jar 
> > com.webcodepro.applecommander.ui.AppleCommander -swt
> >
> > (I'm unsure if the -swt switch is passed in - or if Java will 
> > consume it.)
> 
> I've been doing some experimentation with dynamic classloading to 
> improve on apple game server -- and on a similar note this is why I 
> try very hard to stick with the out of box JDK classes to avoid jar 
> file hell.  With the dynamic classloader, you have a main class that 
> is just a bootstrap, maybe displays a fancy splash logo (oh that's so 
> late 90's) and meanwhile search the current path as well as known 
> system paths (maybe a maven repository, or in *nix the /lib folder) 
> for jar files and, if using native libraries like RXTX, dynamic 
> libraries.  Once you locate everything, you programatically build the 
> classpath and fire off the main program in a new thread, passing it a 
> custom classloader with the list of paths added to it.
> 
> This has some nice advantages for the user, in that they don't have 
> to type a long commandline.  You can also print friendly messages 
> when you cannot locate a required dependency that make more sense 
> than the "class not found" exceptions.
> 
> A simpler but less elegant solution is to add manifest entires to 
> your main jar file that specify these dependencies outright.  It 
> won't help with native libraries (like rxtx) but could help if you're 
> using, say, apache commons or jaxb.
> 
> http://onjava.com/pub/a/onjava/2005/04/13/dependencies.html

SWT is little extra heavy: it requires both a runtime JAR and a 
platform-specific JNI library.

-- 
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>