glfs/archive/jdk.SAVE

966 lines
37 KiB
Plaintext
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY jdk-download-binary "http://java.sun.com/javase/downloads/index.jsp">
<!ENTITY jdk-bin-md5sum "f7528500c17c09546566e05988beda86">
<!ENTITY jdk-bin-size "67 MB">
<!ENTITY jdk-bin-buildsize "207 MB">
<!ENTITY jdk-bin-version "6u5">
<!ENTITY jdk-source-jrl-md5sum "83390379fb9f3193e93a9d5eed5b31d9">
<!ENTITY jdk-source-bin-md5sum "8b6f1b8d8dec051c18385539111141ec">
<!ENTITY jdk-source-moz-md5sum "6dcaf7af16211617adff5d672a8b79f4">
<!ENTITY jdk-source-jrl-size "111 MB">
<!ENTITY jdk-source-bin-size "2 MB">
<!ENTITY jdk-source-moz-size "8.2 MB">
<!ENTITY jdk-src-buildsize "1.5 GB">
<!ENTITY jdk-time "12.5 SBU (for both installations)">
<!ENTITY jdk-version-string "6u3">
<!ENTITY jdk-bin-version-string "1.6.0_05">
<!ENTITY jdk-download-source-jrl "http://www.java.net/download/jdk6/&jdk-version-string;/promoted/b05/jdk-&jdk-version-string;-fcs-src-b05-jrl-24_sep_2007.jar">
<!ENTITY jdk-download-source-bin "http://www.java.net/download/jdk6/&jdk-version-string;/promoted/b05/jdk-&jdk-version-string;-fcs-bin-b05-jrl-24_sep_2007.jar">
<!ENTITY jdk-download-source-moz "http://www.java.net/download/jdk6/&jdk-version-string;/promoted/b05/jdk-&jdk-version-string;-fcs-mozilla_headers-b05-unix-24_sep_2007.jar">
]>
<sect1 id="jdk" xreflabel="JDK-&jdk-version;">
<?dbhtml filename="jdk.html" ?>
<sect1info>
2021-05-10 23:53:17 +08:00
<date>$Date$</date>
</sect1info>
<title>JDK-&jdk-version;</title>
<indexterm zone="jdk">
<primary sortas="a-JDK">JDK</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to JDK</title>
<para>The <application>JDK</application> package contains
Sun's <application>Java</application> development environment. This is
useful for developing <application>Java</application> programs and provides
the runtime environment necessary to run <application>Java</application>
programs. It also includes a plug-in for browsers so that they can be
<application>Java</application> aware.</para>
<!-- Previously, the plugin included
in the <application>JDK</application> binary package was unusable on LFS
owing to incompatibilities with <application>GCC</application>-3 compiled
browsers. This is not the case anymore.</para> -->
<para>The <application>JDK</application> comes in two flavors, a
precompiled binary and a source package. You will first need to download
and install the binary version of the <application>JDK</application>
(you'll need to click and agree to the <quote>Sun Microsystems, Inc.
Binary Code License Agreement</quote>). To build from the source, you
will need to read, and agree to the Sun
<!--<ulink url="&patch-root;/jdk-Readme.txt">-->Java Research License<!--</ulink>-->.
You will also need to download the additional files and patches to
complete the source build as detailed below. Note that in some countries
you cannot download the source code.</para>
<warning><para>Sun has recently decided not to provide JRL sources for
the latest update versions of the JDK. The source build instructions and
patches are here for reference only, and contain known security
vulnerabilities. For more information, please see Sun Alerts
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-231246-1">231246</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233321-1">233321</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233322-1">233322</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233323-1">233323</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233324-1">233324</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233325-1">233325</ulink>,
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233326-1">233326</ulink>, and
<ulink url="http://sunsolve.sun.com/search/document.do?assetkey=1-66-233327-1">233327</ulink>.</para>
<para> Sun is actively working on a GPL'd version of the JDK, titled
<ulink url="http://openjdk.java.net/projects/jdk6/">OpenJDK</ulink>.
This new JDK will be licensed under the
<ulink url="http://openjdk.java.net/legal/gplv2+ce.html">GNU General
Public License, version 2, with the Classpath Exception</ulink>.
A stable OpenJDK was not available at the time of writing.</para></warning>
<bridgehead renderas="sect3">Binary Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Binary download (jdk-&jdk-bin-version;-linux-i586.bin):
<ulink url="&jdk-download-binary;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &jdk-bin-md5sum;</para>
</listitem>
<listitem>
<para>Download size (binary): &jdk-bin-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &jdk-bin-buildsize;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Source Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>JRL Source
<simplelist>
<member><ulink url="&jdk-download-source-jrl;"/></member>
<member>&jdk-source-jrl-md5sum;</member>
<member>&jdk-source-jrl-size;</member>
</simplelist>
</para>
</listitem>
<listitem>
<para>Source Binaries
<simplelist>
<member><ulink url="&jdk-download-source-bin;"/></member>
<member>&jdk-source-bin-md5sum;</member>
<member>&jdk-source-bin-size;</member>
</simplelist>
</para>
</listitem>
<listitem>
<para>Mozilla Headers
<simplelist>
<member><ulink url="&jdk-download-source-moz;"/></member>
<member>&jdk-source-moz-md5sum;</member>
<member>&jdk-source-moz-size;</member>
</simplelist>
</para>
</listitem>
<listitem>
<para>Estimated disk space required: &jdk-src-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &jdk-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<bridgehead renderas="sect4">Required Patches</bridgehead>
<itemizedlist spacing='compact'>
<listitem>
<para><ulink
url="&patch-root;/jdk-&jdk-version-string;-gcc4-1.patch"/></para>
</listitem>
<listitem>
<para><ulink
url="&patch-root;/jdk-&jdk-version-string;-motif_fixes-1.patch"/></para>
</listitem>
<listitem>
<para><ulink
url="&patch-root;/jdk-&jdk-version-string;-remove_fixed_paths-1.patch"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">JDK Dependencies</bridgehead>
<bridgehead renderas="sect4">Optional Runtime Dependencies (for binary
installation)</bridgehead>
<para role="optional">
<xref linkend="alsa-lib"/>,
<xref linkend="cups"/>, and
<xref linkend="gtk2"/></para>
<bridgehead renderas="sect4">Additional Requirements
(for source build, including optional requirements)</bridgehead>
<para role="required">
<xref linkend="cpio"/>,
<xref linkend="ksh"/>,
<xref linkend="unzip"/>,
<xref linkend="which"/>, and
<xref linkend="zip"/></para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/jdk"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of JDK</title>
<para>The instructions below install both the binary and source versions.
You may stop after installing the binary version or continue on installing
the source version. You can choose to keep either or both.</para>
<tip>
<para>The <command>./jdk-&jdk-bin-version;-linux-i586.bin</command>
command below unpacks the distribution into a
<filename class='directory'>jdk&jdk-bin-version-string;</filename>
directory. You will be required to view, and then accept (by entering a
<keycap>y</keycap> keypress), a license agreement before any files are
unpacked. If you are scripting (automating) the build, you'll need to
account for this. There is information about automating build commands
in the <xref linkend="automating-builds"/> section of Chapter 2. Towards
the end of this section, specific information for automating this type of
installation is discussed.</para>
</tip>
<para>Normally in BLFS, the files are unpacked into a subdirectory
and the starting point for the installation procedures is that
location. For this application only, start in the directory where all
the downloaded files are located.</para>
<para>Install the binary <application>JDK</application> with the
following commands:</para>
<screen><userinput>chmod 755 jdk-&jdk-bin-version;-linux-i586.bin &amp;&amp;
./jdk-&jdk-bin-version;-linux-i586.bin</userinput></screen>
<note><para>The installation will end with a message
"./jdk-&jdk-bin-version;-linux-i586.bin: line 43: 20283 Aborted" as
javaprefix is unset in the environment. This is by design as
<application>GTK+</application> may not be installed during the
installation, however, the installation will still exit with a zero error
value if scripting the build.</para></note>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>cd jdk&jdk-bin-version-string; &amp;&amp;
install -v -m755 -d /opt/jdk-bin-&jdk-bin-version; &amp;&amp;
mv -v * /opt/jdk-bin-&jdk-bin-version; &amp;&amp;
chown -v -R root:root /opt/jdk-bin-&jdk-bin-version; &amp;&amp;
ln -v -sf xawt/libmawt.so \
/opt/jdk-bin-&jdk-bin-version;/jre/lib/i386/ &amp;&amp;
cd ..</userinput></screen>
<para>Recent versions of libX11 break libmawt
when used with the Xinerama extension. While still the
<systemitem class="username">root</systemitem> user, apply the
following sed to the installed binary to work around this
problem:</para>
<screen role="root"><userinput>sed -i 's@XINERAMA@FAKEEXTN@g' \
/opt/jdk-bin-&jdk-bin-version;/jre/lib/i386/xawt/libmawt.so</userinput></screen>
<para>The binary version is now installed.</para>
<para>If you don't want to compile the source or are not in a position to
download the source owing to license restrictions, skip ahead to the
configuration section.</para>
<para>Save the existing path, and append the recently installed
<application>JDK</application>.</para>
<screen><userinput>export JAVA_HOME=/opt/jdk-bin-&jdk-bin-version; &amp;&amp;
export PATH_HOLD=${PATH} &amp;&amp;
export PATH=${PATH}:${JAVA_HOME}/bin</userinput></screen>
<para>The source code is contained in self-extracting
<filename class='extension'>jar</filename> files. You
will need to be in a windowed environment to extract the sources.
Create a directory to store the extracted sources. Choose the newly
created <filename class="directory">jdk-build</filename> directory
when prompted for the target directory.</para>
<screen><userinput>mkdir jdk-build &amp;&amp;
cd jdk-build &amp;&amp;
for JAR in ../jdk-&jdk-version-string;*.jar
do java -jar ${JAR}
done</userinput></screen>
<para>Apply all the patches downloaded above:</para>
<screen><userinput>for PATCH in ../jdk-&jdk-version-string;*.patch
do patch -Np1 -i ${PATCH}
done</userinput></screen>
<para>Use the following commands to apply some minor changes that
are a little more specific to BLFS, such as lack of a gcc-2.9
compiler, removing a broken demo, and forcing to link to shared
libraries. See the 'Command Explanations' section for more detail:</para>
<screen><userinput>sed -i '/^.*linux)/ { N; /.*/ { N; /.*/d }}' \
deploy/make/plugin/{adapter,nscore}/Makefile &amp;&amp;
sed -i '/.*mtrace.*/ { N; /.*/ s/.*mtrace.*\n.*/\t mtrace/ }' \
j2se/make/mkdemo/jvmti/Makefile &amp;&amp;
sed -i 's/= true/= false/' \
j2se/make/common/shared/Compiler-gcc.gmk</userinput></screen>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/X11R6_symlink.xml"/>
<!-- <para>If your <application>X Window System</application> is installed into
any prefix other than <filename class="directory">/usr/X11R6</filename>,
execute the following commands, replacing
<replaceable>&lt;PREFIX&gt;</replaceable> with the installation prefix of
the <application>X Window System</application>:</para>
<screen><userinput>for file in `find . -name Makefile \
-or -name Imakefile -or -name *.gmk`
do sed -i 's@/usr/X11R6@<replaceable>&lt;PREFIX&gt;</replaceable>@g' $file
done &amp;&amp;
sed -i 's@/usr/X11R6@<replaceable>&lt;PREFIX&gt;</replaceable>@g' \
j2se/src/solaris/native/sun/awt/fontpath.c \
j2se/src/solaris/classes/sun/awt/motif/linux.fontconfig.Sun.properties \
j2se/src/solaris/classes/sun/awt/motif/linux.fontconfig.RedHat.3.properties</userinput></screen> -->
<para>Set/unset some variables which affect the build:</para>
<screen><userinput>export ALT_BOOTDIR=${JAVA_HOME} &amp;&amp;
export CLASSPATH_HOLD=${CLASSPATH} &amp;&amp;
export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts &amp;&amp;
export ALT_MOZILLA_HEADERS_PATH=${PWD}/share/plugin &amp;&amp;
export MILESTONE="03-BLFS" &amp;&amp;
export BUILD_NUMBER="b05" &amp;&amp;
export INSANE=true &amp;&amp;
export DEV_ONLY=true &amp;&amp;
export SKIP_FASTDEBUG_BUILD=true &amp;&amp;
unset JAVA_HOME CLASSPATH CFLAGS CXXFLAGS LDFLAGS</userinput></screen>
<warning><para>Setting CFLAGS/CXXFLAGS/LDFLAGS is guaranteed to make
the build fail. If you are interested in optimizing the build, set
OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS instead. -O3, even in
OTHER_C{,XX}FLAGS, is known to cause a build failure.</para></warning>
<para>Additionally, if you would like to <command>make</command> in
parallel, add the following:</para>
<screen><userinput>export HOTSPOT_BUILD_JOBS=<replaceable>&lt;3&gt;</replaceable></userinput></screen>
<para>Build the <application>JDK</application> with the following
commands. There will be a few messages about missing files that look like
errors. These are caused by not meeting the expected build environment
(Red Hat). As long as the build doesn't stop, the messages
are harmless.</para>
<screen><userinput>pushd control/make &amp;&amp;
make &amp;&amp;
popd</userinput></screen>
<para>To test the results, you can run one of the provided demo programs
using the newly created <command>java</command> binary. Issue the
following commands:</para>
<screen><userinput>pushd control/build/linux-i586/j2sdk-image/demo/jfc/Java2D &amp;&amp;
../../../bin/java -jar Java2Demo.jar &amp;&amp;
popd</userinput></screen>
<para>Now, as the <systemitem class="username">root</systemitem> user,
install the <application>JDK</application>:</para>
<screen role="root"><userinput>pushd control/build/linux-i586 &amp;&amp;
cp -v -a j2sdk-image /opt/jdk-&jdk-version-string; &amp;&amp;
chown -v -R root:root /opt/jdk-&jdk-version-string; &amp;&amp;
ln -v -sf xawt/libmawt.so /opt/jdk-&jdk-version-string;/jre/lib/i386/ &amp;&amp;
popd</userinput></screen>
<para>Restore the unprivileged user's environment using the following
commands:</para>
<screen><userinput>export JAVA_HOME=${ALT_BOOTDIR} &amp;&amp;
export CLASSPATH=${CLASSPATH_HOLD} &amp;&amp;
export PATH=${PATH_HOLD} &amp;&amp;
unset PATH_HOLD ALT_BOOTDIR CLASSPATH_HOLD \
ALT_CACERTS_FILE ALT_MOZILLA_HEADERS_PATH \
BUILD_NUMBER MILESTONE INSANE DEV_ONLY \
SKIP_FASTDEBUG_BUILD</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><command>sed -i '/^.*linux)/...</command>: This command disables
the build of a gcc-2.9 compatible browser plugin. LFS does not contain
gcc-2.9, and hasn't in quite a few years.</para>
<para><command>sed -i '/.*mtrace.*/...</command>: This command disables
building of the broken 'waiters' demo.</para>
<para><command>sed -i 's/= true/= false/'...</command>: This command
forces the compiler to link against the standard C libraries
dynamically.</para>
<para><command>export ALT_BOOTDIR=${JAVA_HOME}</command>: This variable sets
the location of the bootstrap <application>JDK</application>.</para>
<para><command>export ALT_CACERTS_FILE...</command>: Specifies the
certificate file to use (from the installed binary
<application>JDK</application>).</para>
<para><command>export ALT_MOZILLA_HEADERS_PATH=${PWD}/share/plugin/</command>:
This tells the build exactly where to find the
<application>Mozilla</application> headers. This has changed since the
previous version and is not mentioned in the installation documentation
included with the package source.</para>
<para><command>export MILESTONE="03-BLFS"</command>: This appends
the string '03-BLFS' to the buld number. 'internal' is
unconditionally added if MILESTONE is unset. This is similar
to the format used by Sun for the official release.</para>
<para><command>export BUILD_NUMBER="b05"</command>:
This will help you identify the compiled version of the runtime
environment and virtual machine by appending this information to
the version string. This is the same build number used by Sun to
identify the official release.</para>
<para><command>export INSANE=true</command>: The certified platform for the
build is Redhat Enterprise Advanced Server 2.1. This variable ensures that
all the errors related to compiling on a non-certified platform will be
displayed as warnings instead of errors.</para>
<para><command>export DEV_ONLY=true</command>: This command
skips compiling the comparison build.</para>
<para><command>export SKIP_FASTDEBUG_BUILD=true</command>: This command
skips building of the debug version. Omit this command if you need
to build the fastdebug target.</para>
<para><command>unset JAVA_HOME CLASSPATH CFLAGS CXXFLAGS LDFLAGS</command>:
These variables cause miscompilation of the build. Never set them.</para>
<para><command>ln -sf xawt/libmawt.so
/opt/jdk-&jdk-version-string;/jre/lib/i386/</command>: This fixes
linking issues with other applications that expect to find the
<application>motif</application> libraries with the other
<application>JDK</application> libraries.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring JDK</title>
<sect3>
<title>Configuration Information</title>
<para>There are now two Java 2 SDKs installed in
<filename>/opt</filename>. You should decide on which one you
would like to use as the default. For example if you decide to use the
precompiled <application>JDK</application>, do the following as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>ln -v -nsf jdk-bin-&jdk-bin-version; /opt/jdk</userinput></screen>
<para>The information below assumes your system is set up using the
instructions found in
<quote><xref linkend="postlfs-config-profile"/></quote>. You may need to
extract the relevant information below and incorporate it into your
system's startup files if your system is set up differently.</para>
<para>Add the following <filename>jdk.sh</filename> shell startup file to
the <filename>/etc/profile.d</filename> directory with the following
commands as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>cat &gt; /etc/profile.d/jdk.sh &lt;&lt; "EOF"
<literal># Begin /etc/profile.d/jdk.sh
# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk
# Adjust PATH
pathappend ${JAVA_HOME}/bin PATH
# Auto Java CLASSPATH
# Copy jar files to, or create symlinks in this directory
AUTO_CLASSPATH_DIR=/usr/lib/classpath
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
pathappend $dir CLASSPATH
done
export JAVA_HOME CLASSPATH
unset AUTO_CLASSPATH_DIR
unset dir
# End /etc/profile.d/jdk.sh</literal>
EOF</userinput></screen>
<para>The <application>Java</application> plugin is located in
<filename class="directory">$JAVA_HOME/jre/plugin/i?86/ns7/</filename>.
Make a symbolic link to the file in that directory from your browser(s)
plugins directory.</para>
<important>
<para>The plugin must be a symlink for it to work. If not, the browsers
will crash when you attempt to load a <application>Java</application>
application.</para>
</important>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directory</segtitle>
<seglistitem>
<seg>appletviewer, apt, extcheck, idlj, HtmlConverter, jar,
jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi,
javaws, jconsole, jdb, jhat, jinfo, jmap, jps,
jrunscript, jsadebugd, jstack, jstat, jstatd, keytool,
native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry,
schemagen, serialver, servertool, tnameserv, unpack200,
wsgen, wsimport, and xjc</seg>
<seg><envar>$JAVA_HOME</envar>/lib/*,
<envar>$JAVA_HOME</envar>/jre/lib/*,
and libjavaplugin_oji.so</seg>
<seg>/opt/jdk-&jdk-version-string;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="appletviewer">
<term><command>appletviewer</command></term>
<listitem>
<para>runs Java applets outside of the context of a browser.</para>
<indexterm zone="jdk appletviewer">
<primary sortas="b-appletviewer">appletviewer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="apt">
<term><command>apt</command></term>
<listitem>
<para>is an annotation processing tool.</para>
<indexterm zone="jdk apt">
<primary sortas="b-apt">apt</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="extcheck">
<term><command>extcheck</command></term>
<listitem>
<para>checks a specified jar file for title and version conflicts
with any extensions installed in the <application>JDK</application>
software.</para>
<indexterm zone="jdk extcheck">
<primary sortas="b-extcheck">extcheck</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="HtmlConverter">
<term><command>HtmlConverter</command></term>
<listitem>
<para>adds Java auto download to html and asp pages. </para>
<indexterm zone="jdk HtmlConverter">
<primary sortas="b-HtmlConverter">HtmlConverter</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="idlj">
<term><command>idlj</command></term>
<listitem>
<para>generates Java bindings from a given IDL file.</para>
<indexterm zone="jdk idlj">
<primary sortas="b-idlj">idlj</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jar">
<term><command>jar</command></term>
<listitem>
<para>combines multiple files into a single jar archive.</para>
<indexterm zone="jdk jar">
<primary sortas="b-jar">jar</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jarsigner">
<term><command>jarsigner</command></term>
<listitem>
<para>signs jar files and verifies the signatures and integrity
of a signed jar file.</para>
<indexterm zone="jdk jarsigner">
<primary sortas="b-jarsigner">jarsigner</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="java">
<term><command>java</command></term>
<listitem>
<para>launches a Java application by starting a Java runtime
environment, loading a specified class and invoking its main
method.</para>
<indexterm zone="jdk java">
<primary sortas="b-java">java</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="javac">
<term><command>javac</command></term>
<listitem>
<para>reads class and interface definitions, written in the
Java programming language, and compiles them into bytecode
class files.</para>
<indexterm zone="jdk javac">
<primary sortas="b-javac">javac</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="javadoc">
<term><command>javadoc</command></term>
<listitem>
<para>parses the declarations and documentation comments in a
set of Java source files and produces a corresponding set of
HTML pages describing the classes, interfaces,constructors,
methods, and fields.</para>
<indexterm zone="jdk javadoc">
<primary sortas="b-javadoc">javadoc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="javah">
<term><command>javah</command></term>
<listitem>
<para>generates C header and source files
that are needed to implement native methods.</para>
<indexterm zone="jdk javah">
<primary sortas="b-javah">javah</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="javap">
<term><command>javap</command></term>
<listitem>
<para>disassembles a Java class file.</para>
<indexterm zone="jdk javap">
<primary sortas="b-javap">javap</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="java-rmi.cgi">
<term><command>java-rmi.cgi</command></term>
<listitem>
<para>is the Java RMI client.</para>
<indexterm zone="jdk java-rmi.cgi">
<primary sortas="b-java-rmi.cgi">java-rmi.cgi</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="javaws">
<term><command>javaws</command></term>
<listitem>
<para>launches Java application/applets hosted on a network.</para>
<indexterm zone="jdk javaws">
<primary sortas="b-javaws">javaws</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jconsole">
<term><command>jconsole</command></term>
<listitem>
<para>is a graphical console tool to monitor and manage both
local and remote Java applications and virtual machines.</para>
<indexterm zone="jdk jconsole">
<primary sortas="b-jconsole">jconsole</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jdb">
<term><command>jdb</command></term>
<listitem>
<para>is a simple command-line debugger for Java classes.</para>
<indexterm zone="jdk jdb">
<primary sortas="b-jdb">jdb</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jhat">
<term><command>jhat</command></term>
<listitem>
<para>parses a java heap dump file and allows viewing
in a webbrowser.</para>
<indexterm zone="jdk jhat">
<primary sortas="b-jhat">jhat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jinfo">
<term><command>jinfo</command></term>
<listitem>
<para>prints Java configuration information for a given Java
process, core file, or a remote debug server.</para>
<indexterm zone="jdk jinfo">
<primary sortas="b-jinfo">jinfo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jmap">
<term><command>jmap</command></term>
<listitem>
<para>prints shared object memory maps or heap memory details
of a given process, core file, or a remote debug server.</para>
<indexterm zone="jdk jmap">
<primary sortas="b-jmap">jmap</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jps">
<term><command>jps</command></term>
<listitem>
<para>lists the instrumented JVMs on the target system.</para>
<indexterm zone="jdk jps">
<primary sortas="b-jps">jps</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jrunscript">
<term><command>jrunscript</command></term>
<listitem>
<para>is a command line script shell.</para>
<indexterm zone="jdk jrunscript">
<primary sortas="b-jrunscript">jrunscript</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jsadebugd">
<term><command>jsadebugd</command></term>
<listitem>
<para>attaches to a Java process or core file and acts as a
debug server.</para>
<indexterm zone="jdk jsadebugd">
<primary sortas="b-jsadebugd">jsadebugd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jstack">
<term><command>jstack</command></term>
<listitem>
<para>prints Java stack traces of Java threads for a given
Java process, core file, or a remote debug server.</para>
<indexterm zone="jdk jstack">
<primary sortas="b-jstack">jstack</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jstat">
<term><command>jstat</command></term>
<listitem>
<para>displays performance statistics for an instrumented JVM.</para>
<indexterm zone="jdk jstat">
<primary sortas="b-jstat">jstat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="jstatd">
<term><command>jstatd</command></term>
<listitem>
<para>is an RMI server application that monitors for the creation
and termination of instrumented JVMs.</para>
<indexterm zone="jdk jstatd">
<primary sortas="b-jstatd">jstatd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="keytool">
<term><command>keytool</command></term>
<listitem>
<para>is a key and certificate management utility.</para>
<indexterm zone="jdk keytool">
<primary sortas="b-keytool">keytool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="native2ascii">
<term><command>native2ascii</command></term>
<listitem>
<para> converts files that contain non-supported character encoding
into files containing Latin-1 or Unicode-encoded characters.</para>
<indexterm zone="jdk native2ascii">
<primary sortas="b-native2ascii">native2ascii</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="orbd">
<term><command>orbd</command></term>
<listitem>
<para>is used to enable clients to transparently locate and invoke
persistent objects on servers in the CORBA environment.</para>
<indexterm zone="jdk orbd">
<primary sortas="b-orbd">orbd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pack200">
<term><command>pack200</command></term>
<listitem>
<para>is a Java application that transforms a jar file into a
compressed pack200 file using the Java gzip compressor.</para>
<indexterm zone="jdk pack200">
<primary sortas="b-pack200">pack200</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="policytool">
<term><command>policytool</command></term>
<listitem>
<para>creates and manages a policy file graphically.</para>
<indexterm zone="jdk policytool">
<primary sortas="b-policytool">policytool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rmic">
<term><command>rmic</command></term>
<listitem>
<para>generates stub and skeleton class files for remote objects
from the names of compiled Java classes that contain remote
object implementations.</para>
<indexterm zone="jdk rmic">
<primary sortas="b-rmic">rmic</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rmid">
<term><command>rmid</command></term>
<listitem>
<para>starts the activation system daemon.</para>
<indexterm zone="jdk rmid">
<primary sortas="b-rmid">rmid</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rmiregistry">
<term><command>rmiregistry</command></term>
<listitem>
<para>creates and starts a remote object registry on the specified
port on the current host.</para>
<indexterm zone="jdk rmiregistry">
<primary sortas="b-rmiregistry">rmiregistry</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="schemagen">
<term><command>schemagen</command></term>
<listitem>
<para>is a Java XML binding schema generator.</para>
<indexterm zone="jdk schemagen">
<primary sortas="b-schemagen">schemagen</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="serialver">
<term><command>serialver</command></term>
<listitem>
<para>returns the serialVersionUID for one or more classes in a
form suitable for copying into an evolving class.</para>
<indexterm zone="jdk serialver">
<primary sortas="b-serialver">serialver</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="servertool">
<term><command>servertool</command></term>
<listitem>
<para>provides an ease-of-use interface for application programmers
to register, unregister, startup and shutdown a server.</para>
<indexterm zone="jdk servertool">
<primary sortas="b-servertool">servertool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tnameserv">
<term><command>tnameserv</command></term>
<listitem>
<para>starts the Java IDL name server.</para>
<indexterm zone="jdk tnameserv">
<primary sortas="b-tnameserv">tnameserv</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="unpack200">
<term><command>unpack200</command></term>
<listitem>
<para>is a native implementation that transforms a packed file
produced by <application>pack200</application> into a jar
file.</para>
<indexterm zone="jdk unpack200">
<primary sortas="b-unpack200">unpack200</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="wsgen">
<term><command>wsgen</command></term>
<listitem>
<para>generates JAX-WS portable artifacts used in JAX-WS
web services.</para>
<indexterm zone="jdk wsgen">
<primary sortas="b-wsgen">wsgen</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="wsimport">
<term><command>wsimport</command></term>
<listitem>
<para>generates JAX-WS portable artifacts.</para>
<indexterm zone="jdk wsimport">
<primary sortas="b-wsimport">wsimport</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="xjc">
<term><command>xjc</command></term>
<listitem>
<para>is a Java XML binding compiler.</para>
<indexterm zone="jdk xjc">
<primary sortas="b-xjc">xjc</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>