Received: from PACIFIC-CARRIER-ANNEX.MIT.EDU by po7.MIT.EDU (5.61/4.7) id AA19586; Fri, 8 Dec 95 10:24:37 EST
Received: from liquor.cabi.net by MIT.EDU with SMTP
	id AA11421; Fri, 8 Dec 95 10:23:22 EST
Received: (from listadm@localhost) by liquor.cabi.net (8.6.12/8.6.12) id KAA30666; Fri, 8 Dec 1995 10:20:50 -0500
Resent-Date: Fri, 8 Dec 1995 10:20:50 -0500
From: "Eric S. Raymond" <esr@locke.ccil.org>
Message-Id: <199512081531.KAA23742@locke.ccil.org>
Subject: Draft Java-on-Linux FAQ
To: java-linux@java.blackdown.org
Date: Fri, 8 Dec 1995 10:31:55 -0500 (EST)
X-Mailer: ELM [version 2.4 PL24]
Content-Type: text
Content-Length:       7363
Resent-Message-Id: <"Lqg0u3.0.mU7.yU5om"@liquor>
Resent-From: java-linux@java.blackdown.org
X-Mailing-List: <java-linux@java.blackdown.org> archive/latest/669
X-Loop: java-linux@java.blackdown.org
Precedence: list
Resent-Sender: java-linux-request@java.blackdown.org

<!-- This is the Java on Linux HOWTO, SGML source -- >
<!-- Eric S. Raymond, esr@snark.thyrsus.com -- >
<!-- The submission address is gregh@cc.gatech.edu -- >

<!doctype linuxdoc system>

<article>

<title>Java on Linux HOWTO
<author>maintained by Eric S. Raymond,
<htmlurl url="mailto:esr@snark.thyrsus.com" name="<esr@snark.thyrsus.com>"> 
<date>v.0.1, 8 Dec 1995

<abstract>
This document describes how to get started with Java and HotJava under
Linux, as either a user or a programmer.
</abstract>

<toc>

<sect>Introduction
<p>
This document is a Linux-centric introduction to the world of Java and
HotJava.  These technologies are rapidly evolving, and we welcome
contributions from anywhere.
<p>
Places in this document that are in serious need of filling out are
bracketed with *** ***.  Please help us improve it.
</sect>

<sect> What are are Java and HotJava and why are they interesting?
<p>
Java is a network-aware language superficially resembling C++, but
much smaller and more compact and cleanly designed.  It's an
unlimited-extent language with garbage collection like Lisp, but with
strong type checking.  It includes lightweight processes (threads) as
a native facility and has powerful network-security features.  So far,
its major application is the HotJava browser.
<p>
HotJava is a WWW browser written in Java.  Its major advance over
other browsers is that it knows about a new HTML construct called an
APP, which is some Java class that executes on the client machine.
Thus, WWW documents written with Java in mind can have "live" code
objects embedded in them, as opposed to just data.
<p>
The ability to safely pass around code objects probably represents the most
significant advance in WWW technology since the first release of Mosaic.
At minimum, it delivers an extensible Web browser that won't need
perpetual upgrading to handle new image formats and tag types.
</sect>

<sect> Are Java and HotJava included in any of the Linux distributions?
<p>
No, not yet, but expect it any week now.
</sect>

<sect> Where do Java and HotJava come from?  Who can use them?
<p>
Java and HotJava were developed at Sun Microsystems by a team headed 
by James Gosling (well known as the designer of Gosling Emacs and
NeWS).
<p>
The last time Sun tried to set a major technical standard was NeWS,
its Network Window System.  Though NeWS was pretty universally
conceded to be technically superior to X, X won because its sources
were freely redistributable.  Sun learned from this mistake, and has
made Java/HotJava much more generally available; the sources can be
downloaded under a fairly relaxed license (see below).  Sun is
encouraging ports to non-Sun environments.
<p>
Netscape now interprets Java.  Microsoft licensed the technology in
early December 1995.  So it appears that Java support will probably
become universal in 1996.
<p>
Java used to be called Oak.  HotJava was once known as WebRunner.
</sect>

<sect> How mature is Java?
<p>
Java is currently (December 1995) in late beta.  The Java environment
API defining its access to the host OS and windowing system has
allegedly been frozen.
<p>
Significant holes are known to exist in the Java security
implementation.  It is not yet a good idea to use Java for sensitive
applications.  These problems are expected to be fixed soon.
</sect>

<sect> Where can I find documentation on Java and HotJava?
<p>
Sun maintains an extensive HTML web of Java and HotJava-related
documents at <url url="http://java.sun.com">.  These documents are 
mirrored at <url url="http://java.blackdown.com"> and elsewhere; see
Sun's list of mirror sites.
</sect>

<sect>Yes, but where can I find paper documentation?
<p>
Sun's official series of Java books is in the production pipeline at
Addison-Wesley.
<p>
O'Reilly Associates is working on its own series of Java books in
cooperation with Sun.
<p>
***Is there anything out on paper now?***
</sect>

<sect> What environment will I need to run Java, and how can I set it up?
<p>
For starters, you need an ELF-based Linux.  There is no a.out support,
and at the speed the Linux world is switching over to ELF there is not
likely to be any in the future.
<p>
According to the README on blackdown, you'll need these pieces:

<itemize>
	<item>libc.so.5 => /lib/libc.so.5.0.9 &nl
		(The standard C library)

	<item>libX11.so.6 => /usr/X11/lib/libX11.so.6.0 &nl
		(The base X11R6 library)

	<item>libXt.so.6 => /usr/X11/lib/libXt.so.6.0 &nl
		(The Athena toolkit library)

	<item>libXext.so.6 => /usr/X11/lib/libXext.so.6.0 &nl
		(The X extensions library)

	<item>libXpm.so.4 => /usr/X11/lib/libXpm.so.4.3  &nl
		(The X library for pixmap handling.)

	<item>libdl.so.1 => /lib/libdl.so.1.7.9 &nl
		***What is this, some dynamic-loader library?***

        <item>libICE.so.6 => /usr/X11/lib/libICE.so.6.0 &nl
		***Tell me this isn't Intrusion Countermeasure Electronics...***
	<item>libSM.so.6 => /usr/X11/lib/libSM.so.6.0 &nl
		***Java does bondage?***
</itemize>
It says "Any libc5 ought to work.  ld.so.1.7.9 and .11 will work. 
.10 will not."
<p>
The C and X support libraries should be in your Linux already.  The
dl, ICE, and SM libraries probably are not.
<p>
***Where can we get these!?***
</sect>

<sect> How can I get the latest Java distribution for Linux?
<p>
Look in <url url="ftp://java.blackdown.org/pub/Java">.  The latest
Java-for-Linux can be downloaded from there.  You should browse
the <url url="ftp://java.blackdown.org/pub/Java/README"> first.
</sect>

<sect> What mailing lists or newsgroups exist for supporting Java on Linux?
<p>
<itemize>
<item><em/java-linux/ (Maintained by karl@blackdown.org)
        Discussions and developments concerning the port of Java to the
        Linux operating system. Email to
	<htmlurl url="mailto:java-linux-request@java.blackdown.org"
		name="java-linux-request@java.blackdown.org">
	with the word `subscribe' in the subject to be added to the list.
<item><em/java-linux-announce/ (Maintained by karl@blackdown.org)             
	Moderated list for announcements concerning the Java-Linux           
	porting projects. Please send e-mail to
	<htmlurl url="mailto:java-linux-announce-request@java.blackdown.org"
		name="java-linux-announce-request@java.blackdown.org">
	with the word subscribe in the subject, to be added to the list.
<item><htmlurl url="news:comp.lang.java" name="comp.lang.java">
	Newsgroup for general Java discussion.
<item><htmlurl url="news:alt.www.hotjava" name="alt.www.hotjava">
	Newsgroup for discussion of the HotJava browser.
</itemize>
</sect>                                  

<sect> Which parts of the Java sources are not freely redistributable?
<p>
***Would someone who understands the license terms please write this?***
</sect>

<sect> Is anyone cloning the parts that aren't freely redistributable?
<p>
Not that we know of, yet.  If Java becomes as popular as seems likely, this
will certainly change.
<p>
Sun has a Java validation suite.  They'll certify any Java port that passes
it.
</sect>

<sect> Do I need Netscape?  Can I use Netscape?
<p>
Newer netscape versions are Java-aware; check out
<url url="http://www.netscape.com"> for details.  However, as of
December 1995 there is no release of a Java-aware Netscape for Linux.
</sect>

</article>

<!--
The following sets edit modes for GNU EMACS
Local Variables:
fill-prefix:"\t"
fill-column:75
End:
-- >

