source: general/prog/j2sdk.xml@ 7ae9a90

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 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 7ae9a90 was 7ae9a90, checked in by Randy McMurchy <randy@…>, 19 years ago

Fixed typo in JDK instructions

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

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