Java-Linux MINI-HOWTO This document gives a brief rundown of what setup and external libraries are recommended to use the JDK 1.0.2 for Linux. ______________________________________________________________________ Table of Contents: 1. How to make the JDK 1.0.2 work on your machine 1.1. Which libraries do I need? 1.2. Where can I find more information on elf? 1.3. What else do I need to do? 1.4. Where do I get the JDK for Linux? 1.5. Are there any bugs? 2. How to make Netscape 3.0 and java work 2.1. Getting the environment right ______________________________________________________________________ 1. How to make the JDK 1.0.2 work on your machine 1.1. Which libraries do I need? In order to use the JDK under linux, you will need current versions of the Standard C Library, the Linux Dynamic Loader Library, and the X windows libraries. The Standard C Library and Dynamic Loader Library are both available from , while the latest X windows release is located at . You will need the following versions of each package: o libc version 5.2.18 or greater. o ld.so version 1.7.14 or greater. o XFree86 version 3.1.2 or greater (X11 / X windows). If you do not have XFree86 installed, and wish to refrain from doing so, selecting the shared-motif2 version of the JDK archive will allow you to operate without the X11 shared libraries. In addition it is recommended that you run a 2.0.x or greater linux kernel. Be very careful when upgrading the Standard C Library and Dynamic Loader Library, as a mistake may render your system unuseable. Once you have installed the new libraries, ensure that there are no stale symbolic links to older libraries. 1.2. Where can I find more information on elf? The JDK 1.0.2 port for linux will only function on an elf based linux system and requires a number of external libraries. You can find out more information through Daniel Barlow's official elf page, located at . Both Redhat Software and Slackware provide elf based distributions of linux. 1.3. What else do I need to do? The CLASSPATH environment variable is set automatically by the java script. If you are having problems using the Java Developer's Kit, make sure that the CLASSPATH variable is not set before you try running java, javac, or the appletviewr. Another common problem concerns the device /dev/zero. Certain unnamed distributions set the permissions on this device incorrectly. Before running the Java Developer's Kit, make sure to issue the following command as the superuser: ______________________________________________________________________ chmod 666 /dev/zero ______________________________________________________________________ Finally, be certain that you have at least 20 megabytes of free swap space before running the Java Developer's Kit. 1.4. Where do I get the JDK for Linux? The Java Developer's Kit for Linux can be found through numerous mirror sites. You can find the current list at . At these sites, you will find both standard tar and gzip'd archives, and RPM format packages. Please note: The distinction between shared and static in the archive names refers to the Motif 2.0 library. If you have not purchased Motif, a commercial product, then chances are you need to retrieve the static archive. Also, unless you select the RPM format of the archives, you will need to retrieve the common archive that pertains to the revision of the JDK you select as well. If you do not have XFree86 installed, and wish to refrain from doing so, selecting the shared-motif2 version of the JDK archive will allow you to operate without the X11 shared libraries. 1.5. Are there any bugs? Yes, the 1.0.2-p1 revision of the JDK for Linux has bugs. If you wish to report one, please send email to chapman@wilbursoft.com. The current list of known problems will be documented at . 2. How to make Netscape 3.0 and java work 2.1. Getting the environment right The fundamental problem with Netscape 3.0, java, and linux machines is the use of a Standard C Library revision later than libc 5.0.9. With the following wrapper script to netscape, java will for the most part cease to crash the browser. The script also sets a very simple CLASSPATH. Be careful, certain CLASSPATH entries can confuse netscape and cause it to crash. ______________________________________________________________________ #!/bin/sh export CLASSPATH="/usr/local/netscape/java/classes/java_30:." export LD_LIBRARY_PATH="/lib/509" netscape $* ______________________________________________________________________ To make this all work, follow these steps: o Install netscape o Copy the java_30 file included with the netscape archive to /usr/local/netscape/java/classes/ o Create a directory called /lib/509/ o Copy libc.so.5.0.9 to /lib/509/ o Create a symlink from /lib/509/libc.so.5.0.9 to /lib/509/libc.so.5 o Edit the shell script to match your setup