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:
- 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
- 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.
- 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.