README.linux for JDK 1.1.1, Version 3
Steve Byrne  sbb@gnu.ai.mit.edu
5/15/97

This is my port of JDK 1.1.1 to Linux, based heavily on Randy Chapman's JDK 1.1
port. 

It includes the standard Linux distributions of libc.so and libdl.so that were
used to build the java executable.  These libraries are *not* from Sun, and are
not subject to the JDK binary license; they are verbatim copies of the standard
Linux libraries.  They're included so that people can have a fully running JDK
system "out of the box".  If you'd prefer to use your own system's definitions
of these libraries, simply remove them from the jdk1.1.1/lib/i586/green_threads
directory, or just change their names to something different that won't be
confused with your system's libraries.

Version 3 fixes a bug where accept() would hang until it was woken by a SIGIO.
It also fixes printing to not depend on having /usr/bin/lp (SVR4 standard) be
present, and will use the BSD /usr/bin/lpr when it's available.  

Version 2 features the assembler based interpreter (non-debug version only),
for faster execution of bytecodes.  Also separatetely released with Version 2
is the Java Runtime Environment (JRE).  The JRE is a freely redistributable
(see its LICENSE document for details) Java runtime engine; designed for being
packaged and shipped with your (possibly commercial) software.  Look for it
from where you got this JDK1.1.1.


Java Virtual Machine variations
-------------------------------

There are three versions of the Java interpreter that are shipped with this
release.  The default one depends on having X libraries present on your system,
and has Motif statically linked in (so it does not require Motif to be
installed on your machine).  One other version has no dependency on X, and
starts up much faster, but it cannot be used with X, because there's no way to
have a shared library have a weak reference to another shared library with the
current ld.  The other other version dynamically references Motif, but will use
your version of Motif at runtime instead of the statically bound version.

The environment variables NS_JAVA and DYN_JAVA control the behavior.  If it's
NS_JAVA unset, or if it's set to a zero length value, you get the default,
statically linked Java interpreter.  If, however, you have NS_JAVA set to
"true" (or something non-zero length), you'll get the much smaller
nonstatically linked Java interpreter.  For the curious: in the
bin/i586/green_threads/ directory, the executables (java for the static
version, and java_ns for the non-static version) are kept.  I make no promises
about keeping the name "java_ns" stable across releases; you should use the
"java" shell script in the jdk1.1.1/bin directory and not invoke the "java"
binary executable directly.

Similarly, if DYN_JAVA is set to a non-empty value, the version of the Java
interpreter that uses the Motif shared library on your machine is selected.
This allows you to use your own local Motif shared library instead of the
statically bound one, so you can experiment with LessTif, and can take
advantages of more recent versions of Motif.

Enjoy!



