What is JIGS? | Authors | Releases | Prerequisites | Examples and Screenshots | Download | License | FAQ | Documentation

JIGS Frequently Asked Questions

0. Where can I find examples of using GNUstep from Java ?

Have a look into the Testing/Java directory for examples of java programs using the GNUstep core libraries. Some of the examples from there will now be also made available here.

1. Does JIGS work with JNI 1.1 ?

No. JIGS requires JNI 1.2, mainly because it uses weak references, which are provided by JNI 1.2 but not by JNI 1.1. There are no current plans to port JIGS to JNI 1.1.

2. Can I use JIGS to access Objective-C libraries inside a Java servlet ?

Yes! That is a well-tested scenario. Here are a few hints: you need to make sure that:

  1. your java servlet has the classpath set so that it can access the java classes you want to use. Usually, this means the System and Local Libraries/Java directories, which by default at /usr/GNUstep/System/Library/Libraries/Java and /usr/GNUstep/Local/Library/Libraries/Java . So, you need to make sure these two directories are in your CLASSPATH. If GNUstep is installed somewhere else, these directories might be somewhere else (for example, /usr/lib/GNUstep/Libraries/Java and /usr/local/lib/GNUstep/Libraries/Java are common on Unix).
  2. your java servlet has the linker/library path set so that it can load in the gnustep libraries. The easiest way to do this is to add /usr/GNUstep/System/Library/Libraries and /usr/GNUstep/Local/Library/Libraries to your linker path (eg, /etc/ld.so.conf under GNU/Linux), or source GNUstep.sh before you start Tomcat.
  3. the NSLog output of your java servlets goes into httpsd_error_log.

3. What about user defaults ? - they are all saved under 'java'

If you run GNUstep from java, it will always read its process name as 'java'. This is nothing bad, except that all user defaults for java applications would be saved under the name 'java', and mix one with the other. To workaround this, you just need to set the process name of your process at the beginning of your code. Something like:

(NSProcessInfo.processInfo ()).setProcessName ("myApp");

4. What about NSLog output ? It always uses 'java' as process

See question 3. - it's the same problem with the same solution.

5. Does JIGS run on XXX (your machine and operating system of choice) ?

JIGS's implementation is - at present - quite deeply dependent on the GNU Objective-C runtime.

In general, JIGS should be as portable as GNUstep and the GNU Objective-C runtime - wherever you can run the GNUstep base library with the GNU Objective-C runtime compiled as shared you should also be able to run JIGS (assuming you have a JDK 1.2 environment). This means once the GNUstep base library is ported (even without working Distributed Objects), JIGS should be ported as well - and if not, at least it should be possible to port it without particular hassle.

This is the theory - in practice, up to now I only have reports of JIGS running on GNU/Linux i386 and GNU/Linux ppc. If you have experiences running (or trying to run) JIGS on a different machine and os, I (Nicola Pero) would be happy to hear about your experience.

6. Which core libraries are wrapped ?

The base library is wrapped, and works nicely. The gui library wrapper instead is experimental and hackish and not very useful as it stands.

7. How do I report a bug ?

The best way to submit bug reports and fixes is to follow the guidelines for reporting GNUstep bugs described on the GNUstep Wiki or on the general GNUstep web site.