GNUstep.org

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! You're welcome to do it. 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. In apache, this is controlled by the file jserv.properties, where you need to add something like the following two lines:
         wrapper.classpath=/usr/GNUstep/System/Libraries/Java
         wrapper.classpath=/usr/GNUstep/Local/Libraries/Java
       
  2. your java servlet has the library path set so that it can load in the gnustep libraries. In apache, this is again controlled by the file jserv.properties, where you need to add something like the following line:
        wrapper.env.copy=LD_LIBRARY_PATH
       
    then, you need to do a
        . /usr/GNUstep/System/Makefiles/GNUstep.sh
       
    before starting apache.
  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 would be happy to hear about your experience.

6. Which core libraries are wrapped ?

The base library is mostly 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 email them to bug-gnustep@gnu.org.