An Overview of the Blackdown JDK

This tries to answer several broad questions about running the Blackdown JDK on Linux. Last Update

$Id: 02-overview.sgml,v 1.5 1998/11/15 22:29:17 stevemw Exp stevemw $ Could You Give Me An Overview of Running Java on Linux?

Running Java on Linux is about what you'd expect. You should be able to run most "pure Java" applications on the Linux JDK or JRE. It does take a little longer to get the latest JDK on a target that Javasoft doesn't officially support. What is the Currently-supported Version of the Blackdown JDK?

This is only a basic summary. The Alpha, SPARC, and PPC platforms may have different requirements, for example. A supported platform running regular, 32-bit Linux is required. See section for details. You need at a minimum, 20MB of free virtual memory to run the JDK. See section for more information. Including HTML documentation and i18n.jar, JDK 1.1.7 i386 glibc version takes about 70MB of free space if you include the native threads pack. You can make it smaller by removing these and the demos. To run AWT, you'll need X11 up and running. Sound cards are supported but not required. OK, Which Version of the JDK Should I Download?

This section closely matches the organization of the Blackdown distribution mirror hierarchy. This part of the FAQ is rather thin on details at the moment, but it should help you to see which archive to retrieve. You may also be interested in reading section above. After reading this, if you're still wondering which individual archive to download, please see below. JDK 1.02

The Blackdown version of the JDK is only supported on Intel. If you know of other Linux platforms to which the JDK has been ported, please tell the FAQ maintainer. Look for the mirror closest to you by following instructions in section . JDK 1.1

Alpha ................................ alpha/ Intel x86 ................................ i386/ SPARC ................................ sparclinux/ PowerPC ................................ mklinux/ Patches to Javasoft Source, etc... ................................ common/ You may wish to read section to help you understand which Intel JDK to download.

For an official description of the FTP site, look for an up to date version of , at the top level of your closest mirror.

To just run the JDK, you don't need anything out of common/. Those diff(1) files are for people who want to request free access to the SPARC/x86 Solaris and i386 Win32 sources from Sun and help with the port. See section for more information. What are These Files?

By now, many readers are still wondering what each archive in the mirror directories is. Below is a representation of what your favorite web browser would have displayed if you were visiting a Blackdown JDK mirror recently. Current directory is /pub/java-linux/JDK-1.1.7/i386/glibc/v1a Up to higher level directory README-1.1.7v1a.txt README.native_threads.txt i18n_1.1.7-v1a-glibc-x86.tar.bz2 i18n_1.1.7-v1a-glibc-x86.tar.gz jdk_1.1.7-v1a-glibc-x86-native.tar.bz2 jdk_1.1.7-v1a-glibc-x86-native.tar.gz jdk_1.1.7-v1a-glibc-x86.tar.bz2 jdk_1.1.7-v1a-glibc-x86.tar.gz jre_1.1.7-v1a-glibc-x86-native.tar.bz2 jre_1.1.7-v1a-glibc-x86-native.tar.gz jre_1.1.7-v1a-glibc-x86.tar.bz2 jre_1.1.7-v1a-glibc-x86.tar.gz rt_1.1.7-v1a-glibc-x86-native.tar.bz2 rt_1.1.7-v1a-glibc-x86-native.tar.gz rt_1.1.7-v1a-glibc-x86.tar.bz2 rt_1.1.7-v1a-glibc-x86.tar.gz At this point, you've already decided that your system is based on glibc (perhaps by reading ). Now you'd like to know what these four files do for you, and which ones you should download. jdk. The JDK contains everything you need to run Java, compile Java, and debug java. It doesn't contain the international character converters (see i18n). jre. The JRE is the Java runtime environment, including the international character converters. rt. The Java RT is the minimal configuration you can have to run Java. It doesn't contain any internationalization support. i18n. This contains font mappings and a JAR file containing the international character converters, and really doesn't need to be split off by library type, but is anyway. *native*. These are additional binaries that provide support for native threads (according to command-line options and environment variables). See the section for a little more information. What Other JDK Ports are Available for Linux?

Please see section for more information. . There's a pure Java Package I Want to Run. Can I?

Most likely. For example, I've tested Javasoft's JFC SwingSet (see ) with a static Motif build and a Lesstif build with good results.

This typically involves downloading the package and untarring or unzipping it. Sometimes the vendor won't provide an installation procedure that works well on Linux, and so you have to adjust a script or do it by hand. When is the JDK 1.2 Going to be Released for Linux?

Sometime shortly after Javasoft's reference port. The Blackdown team has the sources and is working on porting it. Can I Take a Look at the JDK 1.2 on Linux Now Anyway?

After a fashion. Just run unzip on the Solaris shell script archive; it'll unpack it for you. You can then unpack the src.zip archive. Also, you can already get the documentation from Javasoft from . Is Javasoft Going to Support Java on Linux?

We still don't know about full support yet. At one point, bug 4097810 was at the top of the JDC Bug Parade. You can read about it at: .

There are a number of complex issues involved with this request, including the wide variety of Linux distributions, target architectures (beyond Intel where Javasoft already supports Solaris x86), the huge number of announced APIs with required native support, and so forth.

However, Javasoft has released the JDK 1.2 sources to the Blackdown team, and is providing measured engineering resources to help complete the port. You can read more about this in a press-release published on Javasoft's website. See . What are Green Threads?

Green threads use some magic with jmp_bufs, stack pointers, the program counter, and some other hocus pocus to schedule different instruction streams. This gives the practical effect of multi-threading with some caveats about signals and how they're handled across longjmp()s. See the discussion of native threads in section . Is There a Native Threads Port of the Blackdown JDK?

Yes, thanks to Phill Edwards. See the file . Up to date versions of this file are available at your closest mirror.

Native threads should improve performance on multi-processor (SMP) systems and they tend to make native method invocation support easier to deal with. They depend on kernel processes, and therefore are limited to the number compiled into a given kernel.

Here's an excerpt from the threads README to help you get started: To use the native threads package, you must first install the matching JDK release. Then, the matching native thread package must be installed at the same location. This package adds some directories to the JDK tree. For example, the x86 install would best be done as: % tar -zxf jdk_1.1.7-v1a-x86-glibc.tar.gz % tar -zxf jdk_1.1.7-v1a-x86-glibc-native.tar.gz This will make the JDK directory tree in "jdk117_v1a" You can find more information about related command-line options and environment variables in that README. Does Javasoft's Activator JVM work on Linux with Netscape?

Take a look at . This is a random port (from Sun) of the Java Activator Plugin for Netscape. Note that this one-time build isn't at all supported, and that Blackdown developers don't have source for it. Is there a JIT (Just in Time Compiler) for the Blackdown JDK?

There are several. Please take a look at for pointers.

posted an updated configure script to install TYA that this author hasn't tested. You can read his post at . What Other Java Resources are Available at Blackdown?

Karl Asha's Blackdown server, , has a number of resources. Among other things, Karl provides the following pointers: Recent news about running Java on Linux: Javasoft-supplied products: Java Tools: Information about Third-party Java products running on Linux: Other Sources of Information about Java on Linux

Levente Farkas maintains Java RPMs and Java-Linux related links: Slashdot mentions Java frequently. Freshmeat is interesting, as well. Check out the GNU Java page!