source: general/prog/j2sdk.xml@ 9c69d5bc

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.0 6.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gimp3 gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9c69d5bc was 5cd0959d, checked in by Archaic <archaic@…>, 20 years ago

Resetting keywords

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@2592 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 16.3 KB
RevLine 
[52d29f7]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY j2sdk-download-http "http://freshmeat.net/projects/sunjdk">
8 <!ENTITY j2sdk-download-ftp " ">
9 <!ENTITY j2sdk-bin-size "35 MB">
10 <!ENTITY j2sdk-src-size "77 MB">
11 <!ENTITY j2sdk-src-buildsize "1810 MB">
12 <!ENTITY j2sdk-time "85 SBU">
13]>
14
[06aea651]15<sect1 id="j2sdk" xreflabel="J2SDK-&j2sdk-src-version;">
[a0f03b0]16<sect1info>
[5cd0959d]17<othername>$LastChangedBy$</othername>
18<date>$Date$</date>
[a0f03b0]19</sect1info>
[19aa75a]20<?dbhtml filename="j2sdk.html" ?>
[06aea651]21<title>J2SDK-&j2sdk-src-version;</title>
[74c1100]22
[52d29f7]23<sect2>
24<title>Introduction to j2sdk</title>
[014d11ad]25
[52d29f7]26<para>The <application>J2SDK</application> package contains Sun's
27<application>Java</application> development environment. This is useful for
28developing <application>Java</application> programs and provides the runtime
[014d11ad]29environment necessary to run <application>Java</application> programs. It also
[52d29f7]30includes a plug-in for browsers so that they can be <application>Java
31</application> aware.</para>
[014d11ad]32
[52d29f7]33<para>
34The <acronym>JDK</acronym> comes in two flavors, a precompiled binary and a
35source package. Previously, the plugin included in the <acronym>JDK</acronym> binary
36package was unusable on <acronym>LFS</acronym>
37owing to incompatibilities with <acronym>GCC</acronym>-3 compiled browsers.
38This is not the case anymore.</para>
[014d11ad]39
[52d29f7]40<para>The source package requires registration at the Sun
41developer site and accepting the Sun Community Source License.
42The source code cannot be downloaded from some countries, so for users
43from those countries, the binary may be the only option.</para>
[014d11ad]44
45<para>Even if you plan on compiling the <acronym>JDK</acronym> source, you will
[52d29f7]46need to download the binary version to bootstrap the <acronym>JDK</acronym>
47build. Follow the link below to download both source and binary packages. When
48downloading the source also download the <application>Mozilla</application>
49headers package available at the same location.</para>
[014d11ad]50
[52d29f7]51<!--
[014d11ad]52<para>For users who cannot download the <application>J2SDK</application>
53source owing to license restrictions, <application>blackdown
[52d29f7]54</application> has an <acronym>GCC</acronym>-3 based precompiled version.
55Check out <ulink url="http://www.blackdown.org/"/> for more
56information.</para>
57-->
[014d11ad]58
[52d29f7]59<sect3><title>Package information</title>
60<itemizedlist spacing='compact'>
61<listitem><para>Download (HTTP): <ulink
62url="&j2sdk-download-http;"/></para></listitem>
63
64<!--
65<listitem><para>Download (FTP): <ulink
66url="&j2sdk-download-ftp;"/></para></listitem>
67-->
68<listitem><para>Version used (binary):
69&j2sdk-bin-version;</para></listitem>
70<listitem><para>Download size (binary): &j2sdk-bin-size;</para></listitem>
71<listitem><para>Download size (source): &j2sdk-src-size;</para></listitem>
72<listitem><para>Estimated Disk space required:
73&j2sdk-src-buildsize;</para></listitem>
74<listitem><para>Estimated build time:
75&j2sdk-time;</para></listitem></itemizedlist>
76</sect3>
[014d11ad]77
[52d29f7]78<sect3><title>Additional downloads</title>
79<itemizedlist spacing='compact'>
[4f6275fd]80<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-fix_inline_asm-1.patch"/></para></listitem>
81<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-gcc33-1.patch"/></para></listitem>
82<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-motif_mkmsgcat-1.patch"/></para></listitem>
83<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-remove_debug_image-1.patch"/></para></listitem>
84<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-remove_fixed_paths-1.patch"/></para></listitem>
85<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-static_cxx-1.patch"/></para></listitem>
86<listitem><para><ulink url="&patch-root;/j2sdk-&j2sdk-src-version;-ash-1.patch"/> (Only required if /bin/sh is symlinked to <xref linkend="ash"/>)</para></listitem>
[52d29f7]87</itemizedlist>
88</sect3>
[014d11ad]89
[52d29f7]90<sect3><title><application>J2SDK</application> dependencies</title>
91<sect4><title>Required</title>
[014d11ad]92<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
93<xref linkend="zip"/>, <xref linkend="unzip"/>, <xref linkend="cpio"/>,
94<xref linkend="alsa"/>, and <xref linkend="tcsh"/>
[52d29f7]95</para></sect4>
96</sect3>
[014d11ad]97
[52d29f7]98</sect2>
99
100<sect2>
101<title>Installation of <application>J2SDK</application></title>
[014d11ad]102
[52d29f7]103<para>Both versions will be installed in parallel. You may choose to keep
104either or both.</para>
[014d11ad]105
[52d29f7]106<para>Installation of the precompiled <acronym>JDK</acronym> is easy:
107create a directory to install from, copy the .bin there, and run the
108following commands:</para>
[014d11ad]109
[52d29f7]110<screen><userinput><command>VERSION=&j2sdk-bin-version; &amp;&amp;
111MV=`echo $VERSION | cut -d "_" -f 1,1` &amp;&amp;
112V=`echo ${VERSION} | sed -e "s/\./_/g"` &amp;&amp;
113sed -i "s:^PATH=.*::" j2sdk-${V}-linux-i?86.bin &amp;&amp;
114chmod +x j2sdk-${V}-linux-i?86.bin &amp;&amp;
115mkdir -p bin &amp;&amp;
116ln -sf /bin/true bin/more &amp;&amp;
117yes | PATH=$PWD/bin:$PATH ./j2sdk-${V}-linux-i?86.bin &amp;&amp;
118cd j2sdk${VERSION} &amp;&amp;
119install -d /opt/j2sdk/j2sdk-precompiled-${MV} &amp;&amp;
120mv * /opt/j2sdk/j2sdk-precompiled-${MV}</command></userinput></screen>
[014d11ad]121
122<para>The binary version is now installed.</para>
123
124<para>If you don't want to compile the source or are not in a position to
125download the source owing to license restrictions, skip ahead to the
126configuration section.</para>
127
[52d29f7]128<para>Add the recently compiled <acronym>JDK</acronym> to the path.</para>
[014d11ad]129
[52d29f7]130<screen><userinput><command>export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &amp;&amp;
131export PATH=$PATH:${JAVA_HOME}/bin</command></userinput></screen>
[014d11ad]132
[52d29f7]133<para>Unzip the source:</para>
[014d11ad]134
[52d29f7]135<screen><userinput><command>VERSION=&j2sdk-src-version; &amp;&amp;
136V=`echo $VERSION | sed -e "s/\./_/g"` &amp;&amp;
137unzip j2sdk-${V}-src-scsl.zip &amp;&amp;
138unzip j2sdk-${V}-mozilla_headers-unix.zip &amp;&amp;
139unzip j2sdk-${V}-bin-scsl.zip</command></userinput></screen>
[014d11ad]140
[52d29f7]141<para>Apply all the patches downloaded above.</para>
[014d11ad]142
143<screen><userinput><command>for PATCH in fix_inline_asm-1 gcc33-1 \
144 motif_mkmsgcat-1 remove_debug_image-1 remove_fixed_paths-1 \
145 static_cxx-1
[52d29f7]146do
[4f6275fd]147 patch -Np1 -i j2sdk-&j2sdk-src-version;-$PATCH.patch
[52d29f7]148done</command></userinput></screen>
[014d11ad]149
[52d29f7]150<para>Set/unset some variables which affect the build:</para>
151<screen><userinput><command>export ALT_BOOTDIR="$JAVA_HOME" &amp;&amp;
152unset JAVA_HOME &amp;&amp;
153unset CLASSPATH
154unset CFLAGS
155unset CXXFLAGS
156unset LDFLAGS
157export ALT_DEVTOOLS_PATH="/usr/bin" &amp;&amp;
158export BUILD_NUMBER="blfs-`date +%s`" &amp;&amp;
159export DEV_ONLY=true &amp;&amp;
160export ALT_MOZILLA_PATH=$PWD &amp;&amp;
161export INSANE=true &amp;&amp;
162export MAKE_VERBOSE=true &amp;&amp;
163export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts</command></userinput></screen>
[014d11ad]164
165<warning><para>Setting CFLAGS/CXXFLAGS/LDFLAGS is guaranteed to make the build
166fail. If you are interested in optimizing the build, set
167OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS instead.</para></warning>
168
[52d29f7]169<para>Additionally, if you would like to make in parallel, add the following
170(adjust <envar>MAKE_PARALLEL</envar> to your liking):</para>
171<screen><userinput><command>export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL</command></userinput></screen>
[014d11ad]172
173<para>If the included <application>Motif</application> doesn't build properly,
174the error is noticed much later in the build. A solution is to build the
175<application>Motif</application> library before compiling the
176<application>J2SDK</application>.</para>
177
[52d29f7]178<screen><userinput><command>cd motif/lib/Xm &amp;&amp;
179make &amp;&amp;
180cd ../../..</command></userinput></screen>
[014d11ad]181
[52d29f7]182<para>Make and Install <application>J2SDK</application> with the following
183commands. There will be a lot of messages about missing files that look like
[014d11ad]184errors. As long as the build doesn't stop, the messages are harmless, so ignore
[52d29f7]185them.</para>
[014d11ad]186
[52d29f7]187<screen><userinput><command>cd control/make &amp;&amp;
188make &amp;&amp;
189cd ../.. &amp;&amp;
190cd control/build/linux-i?86 &amp;&amp;
191cp -a j2sdk-image /opt/j2sdk/j2sdk-&j2sdk-src-version;</command></userinput></screen>
[014d11ad]192
[52d29f7]193</sect2>
194
195<sect2>
196<title>Command explanations</title>
[014d11ad]197
[52d29f7]198<para><command>export ALT_BOOTDIR="$JAVA_HOME"</command>: This var sets
[014d11ad]199location of the bootstrap <acronym>JDK</acronym>.</para>
200
[52d29f7]201<para><command>export ALT_MOZILLA_PATH=$PWD</command>: This sets the
202variable that points to where you unzipped the <application>Mozilla
203</application> headers.</para>
[014d11ad]204
[52d29f7]205<para><command>export ALT_DEVTOOLS_PATH="/usr/bin"</command>: This
[014d11ad]206changes the location where the build finds the needed executables.</para>
207
[52d29f7]208<para><command>export BUILD_NUMBER="blfs-`date +%s`"</command>: This will
209help you identify this compiled version of the runtime environment and
210virtual machine by appending this information to the version in the
211output to <command>java -version</command>.</para>
[014d11ad]212
[52d29f7]213<para><command>export DEV_ONLY=true</command>: This command
214eliminates compiling the documentation and eliminates a dependency for
[014d11ad]215<application>rpm</application>.</para>
216
[52d29f7]217<para><command>unset JAVA_HOME</command>: This clears the
[014d11ad]218<envar>JAVA_HOME</envar> variable as recommended by the build
219instructions.</para>
220
[52d29f7]221<para><command>unset CLASSPATH</command>: This clears the
[014d11ad]222<envar>CLASSPATH</envar> variable as per the recommendations in the build
223instructions.</para>
224
[52d29f7]225<para><command>unset CFLAGS...</command>: These flags cause miscompilation
226of the build. Never set these.</para>
[014d11ad]227
[52d29f7]228<para><command>export INSANE=true</command>: Unless you specify that you
229are insane the build will not proceed. The certified platform for the build is
230Redhat 6.1. The above variable ensures that all the errors related to
231compiling on a non-certified platform will be converted to warnings.</para>
[014d11ad]232
[52d29f7]233<para><command>export MAKE_VERBOSE=true</command>: Allows the current
234compilation command to be displayed on the console.</para>
[014d11ad]235
[52d29f7]236<para><command>export ALT_CACERTS_FILE...</command>: Specifies the
237certificate file to use.</para>
[014d11ad]238
[52d29f7]239</sect2>
240
241<sect2>
242<title>Configuring <application>J2SDK</application></title>
[014d11ad]243
[52d29f7]244<sect3><title>Configuration Information</title>
[014d11ad]245
[52d29f7]246<para>We have two Java 2 <acronym>SDK</acronym>'s installed in
247<filename>/opt/j2sdk</filename>. Decide on which one you
248would like to use as the default. For example if you decide to use the source
249compiled <application>J2SDK</application>, do the following:</para>
[014d11ad]250
[52d29f7]251<screen><userinput><command>ln -nsf j2sdk-&j2sdk-src-version; /opt/j2sdk/j2sdk</command></userinput></screen>
[014d11ad]252
[52d29f7]253<para>Add the following lines to your shell startup file (e.g.,
254<filename>/etc/profile</filename>).</para>
[014d11ad]255
[52d29f7]256<screen><userinput>export JAVA_HOME=/opt/j2sdk/j2sdk
257export PATH=$PATH:$JAVA_HOME/bin</userinput></screen>
[014d11ad]258
[52d29f7]259<para>Add <filename>$JAVA_HOME/man</filename> to your
260<envar>MANPATH</envar> variable or to
261<filename>/etc/man.conf</filename></para>
[014d11ad]262
[52d29f7]263<para>The <application>Java</application> plugin is in the directory
264<filename class="directory">$JAVA_HOME/jre/plugin/i?86/ns610/</filename>.
265Make a symbolic link to the file in that directory from your plugins directory.</para>
[014d11ad]266
[52d29f7]267</sect3>
[014d11ad]268
[52d29f7]269<sect3><title>Handling CLASSPATH</title>
[014d11ad]270
[52d29f7]271<para>When compiling packages, the <envar>CLASSPATH</envar> environment variable
[014d11ad]272is used by JDK to locate classes at compile-time and run-time. It is tedious to
273add all the classes used to the <envar>CLASSPATH</envar> manually. You may add
[52d29f7]274the following lines to your shell startup file to set <envar>CLASSPATH</envar>
275automatically to include all JAR files in a specified directory, which in
276the example below is <filename>/usr/lib/auto-java-classpath</filename>.</para>
[014d11ad]277
[52d29f7]278<screen><userinput>AUTO_CLASSPATH_DIR=/usr/lib/auto-java-classpath
279if [ -z $CLASSPATH ]
280then
281 CLASSPATH=.:$AUTO_CLASSPATH_DIR
282else
283 CLASSPATH=$CLASSPATH:.:$AUTO_CLASSPATH_DIR
284fi
285for i in $(ls $AUTO_CLASSPATH_DIR/*.jar 2>/dev/null)
286do
287 CLASSPATH=$CLASSPATH:$i
288done</userinput></screen>
[014d11ad]289
[52d29f7]290</sect3>
[014d11ad]291
[52d29f7]292</sect2>
293
294<sect2>
295<title>Contents</title>
[014d11ad]296
[52d29f7]297<para>The <application>J2SDK</application> package contains
298<command>appletviewer</command>,
299<command>extcheck</command>, <command>idlj</command>,
300<command>jar</command>, <command>jarsigner</command>,
301<command>java</command>, <command>javac</command>,
302<command>javadoc</command>, <command>javah</command>,
303<command>javap</command>, <command>jdb</command>,
304<command>keytool</command>, <command>native2ascii</command>,
305<command>orbd</command>, <command>policytool</command>,
306<command>rmic</command>, <command>rmid</command>,
307<command>rmiregistry</command>, <command>rmiregistry</command>,
308<command>serialver</command>, <command>servertool</command> and
309<command>tnameserv</command>.</para>
[014d11ad]310
[52d29f7]311</sect2>
[014d11ad]312
[52d29f7]313<sect2><title>Description</title>
[014d11ad]314
[52d29f7]315<sect3><title>appletviewer</title>
[014d11ad]316<para><command>appletviewer</command> runs <application>Java</application>
317applets outside of the context of a browser.</para></sect3>
318
[52d29f7]319<sect3><title>extcheck</title>
320<para><command>extcheck</command> checks a specified <filename>JAR</filename>
321file for title and version conflicts with any extensions installed in the
322<acronym>JDK</acronym> software.</para></sect3>
[014d11ad]323
[52d29f7]324<sect3><title>idlj</title>
325<para><command>idlj</command> generates <application>Java</application>
326bindings from a given <acronym>IDL</acronym> file.</para></sect3>
[014d11ad]327
[52d29f7]328<sect3><title>jar</title>
329<para><command>jar</command> combines multiple files into a single
330<acronym>JAR</acronym> archive file.</para></sect3>
[014d11ad]331
[52d29f7]332<sect3><title>jarsigner</title>
333<para><command>jarsigner</command> signs <filename>JAR</filename>
334(Java ARchive) files and verifies the signatures and integrity of a signed
335<filename>JAR</filename>.</para></sect3>
[014d11ad]336
[52d29f7]337<sect3><title>java</title>
338<para><command>java</command> launches a <application>Java</application>
339application by starting a <application>Java</application> runtime
340environment, loading a specified class and invoking its main
341method.</para></sect3>
[014d11ad]342
[52d29f7]343<sect3><title>javac</title>
344<para><command>javac</command> reads class and interface definitions, written
345in the <application>Java</application> programming language, and compiles them
346into bytecode class files.</para></sect3>
[014d11ad]347
[52d29f7]348<sect3><title>javadoc</title>
349<para><command>javadoc</command> parses the declarations and documentation
350comments in a set of <application>Java</application> source files and produces
351a corresponding set of <acronym>HTML</acronym> pages describing the classes,
352interfaces, constructors, methods, and fields.</para></sect3>
[014d11ad]353
[52d29f7]354<sect3><title>javah</title>
355<para><command>javah</command> generates <application>C</application> header
356and source files that are needed to implement native methods.</para></sect3>
[014d11ad]357
[52d29f7]358<sect3><title>javap</title>
359<para><command>javap</command> disassembles a
360<application>Java</application> class file.</para></sect3>
[014d11ad]361
[52d29f7]362<sect3><title>jdb</title>
363<para><command>jdb</command> is a simple command-line debugger for
364<application>Java</application> classes.</para></sect3>
[014d11ad]365
[52d29f7]366<sect3><title>keytool</title>
[014d11ad]367<para><command>keytool</command> is a key and certificate management
368utility.</para></sect3>
369
[52d29f7]370<sect3><title>native2ascii</title>
371<para><command>native2ascii</command> converts files that contain non-supported
[014d11ad]372character encoding into files containing Latin-1 or Unicode-encoded
373characters.</para></sect3>
374
[52d29f7]375<sect3><title>orbd</title>
376<para><command>orbd</command> is used to enable clients to transparently locate
377and invoke persistent objects on servers in the <acronym>CORBA</acronym>
378environment.</para></sect3>
[014d11ad]379
[52d29f7]380<sect3><title>policytool</title>
381<para><command>policytool</command> creates and manages a policy file
382graphically.</para></sect3>
[014d11ad]383
[52d29f7]384<sect3><title>rmic</title>
385<para><command>rmic</command> generates stub and skeleton class files for
386remote objects from the names of compiled <application>Java</application>
387classes that contain remote object implementations.</para></sect3>
[014d11ad]388
[52d29f7]389<sect3><title>rmid</title>
390<para><command>rmid</command> starts the activation system daemon.</para>
391</sect3>
[014d11ad]392
[52d29f7]393<sect3><title>rmiregistry</title>
394<para><command>rmiregistry</command> creates and starts a remote object
395registry on the specified port on the current host.</para></sect3>
[014d11ad]396
[52d29f7]397<sect3><title>serialver</title>
398<para><command>serialver</command> returns the serialVersionUID for one or
399more classes in a form suitable for copying into an evolving class.</para>
400</sect3>
[014d11ad]401
[52d29f7]402<sect3><title>servertool</title>
403<para><command>servertool</command> provides an ease-of-use interface for
[014d11ad]404application programmers to register, unregister, startup and shutdown a
405server.</para></sect3>
406
[52d29f7]407<sect3><title>tnameserv</title>
408<para><command>tnameserv</command> starts the <application>Java</application>
409<acronym>IDL</acronym> name server.</para></sect3>
410
411</sect2>
[74c1100]412
413</sect1>
414
Note: See TracBrowser for help on using the repository browser.