source: general/prog/j2sdk.xml@ 53fb68f1

10.0 10.1 11.0 11.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 krejzi/svn lazarus nosym perl-modules qt5new systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/test-20220226
Last change on this file since 53fb68f1 was 53fb68f1, checked in by Igor Živković <igor@…>, 18 years ago

Added a note about Java plugin necessity to be a symlink, suggested by Gerard Beekmans.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@2802 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;-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>
87</itemizedlist>
88</sect3>
89
90<sect3><title><application>J2SDK</application> dependencies</title>
91<sect4><title>Required</title>
92<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
93<xref linkend="zip"/>, <xref linkend="unzip"/>, <xref linkend="cpio"/>,
94<xref linkend="alsa"/>, <xref linkend="tcsh"/> and <xref linkend="gcc3"/>
95</para></sect4>
96</sect3>
97
98</sect2>
99
100<sect2>
101<title>Installation of <application>J2SDK</application></title>
102
103<para>Both versions will be installed in parallel. You may choose to keep
104either or both.</para>
105
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>
109
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>
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
128<para>Add the recently compiled <acronym>JDK</acronym> to the path.</para>
129
130<screen><userinput><command>export JAVA_HOME=/opt/j2sdk/j2sdk-precompiled-${MV} &amp;&amp;
131export PATH=$PATH:${JAVA_HOME}/bin</command></userinput></screen>
132
133<para>Unzip the source:</para>
134
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>
140
141<para>Apply all the patches downloaded above.</para>
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 nptl-1
146do
147 patch -Np1 -i j2sdk-&j2sdk-src-version;-$PATCH.patch
148done</command></userinput></screen>
149
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
164export PATH_HOLD=$PATH
165export PATH=/opt/gcc-&gcc3-version;/bin:$PATH</command></userinput></screen>
166
167<warning><para>Setting CFLAGS/CXXFLAGS/LDFLAGS is guaranteed to make the build
168fail. If you are interested in optimizing the build, set
169OTHER_CFLAGS/OTHER_CXXFLAGS/OTHER_LDFLAGS instead.</para></warning>
170
171<para>Additionally, if you would like to make in parallel, add the following
172(adjust <envar>MAKE_PARALLEL</envar> to your liking):</para>
173<screen><userinput><command>export HOTSPOT_BUILD_JOBS=$MAKE_PARALLEL</command></userinput></screen>
174
175<para>If the included <application>Motif</application> doesn't build properly,
176the error is noticed much later in the build. A solution is to build the
177<application>Motif</application> library before compiling the
178<application>J2SDK</application>.</para>
179
180<screen><userinput><command>cd motif/lib/Xm &amp;&amp;
181make &amp;&amp;
182cd ../../..</command></userinput></screen>
183
184<para>Make and Install <application>J2SDK</application> with the following
185commands. There will be a lot of messages about missing files that look like
186errors. As long as the build doesn't stop, the messages are harmless, so ignore
187them.</para>
188
189<screen><userinput><command>cd control/make &amp;&amp;
190make &amp;&amp;
191cd ../.. &amp;&amp;
192cd control/build/linux-i?86 &amp;&amp;
193cp -a j2sdk-image /opt/j2sdk/j2sdk-&j2sdk-src-version; &amp;&amp;
194export PATH=$PATH_HOLD</command></userinput></screen>
195
196</sect2>
197
198<sect2>
199<title>Command explanations</title>
200
201<para><command>export ALT_BOOTDIR="$JAVA_HOME"</command>: This var sets
202location of the bootstrap <acronym>JDK</acronym>.</para>
203
204<para><command>export ALT_MOZILLA_PATH=$PWD</command>: This sets the
205variable that points to where you unzipped the <application>Mozilla
206</application> headers.</para>
207
208<para><command>export ALT_DEVTOOLS_PATH="/usr/bin"</command>: This
209changes the location where the build finds the needed executables.</para>
210
211<para><command>export BUILD_NUMBER="blfs-`date +%s`"</command>: This will
212help you identify this compiled version of the runtime environment and
213virtual machine by appending this information to the version in the
214output to <command>java -version</command>.</para>
215
216<para><command>export DEV_ONLY=true</command>: This command
217eliminates compiling the documentation and eliminates a dependency for
218<application>rpm</application>.</para>
219
220<para><command>unset JAVA_HOME</command>: This clears the
221<envar>JAVA_HOME</envar> variable as recommended by the build
222instructions.</para>
223
224<para><command>unset CLASSPATH</command>: This clears the
225<envar>CLASSPATH</envar> variable as per the recommendations in the build
226instructions.</para>
227
228<para><command>unset CFLAGS...</command>: These flags cause miscompilation
229of the build. Never set these.</para>
230
231<para><command>export INSANE=true</command>: Unless you specify that you
232are insane the build will not proceed. The certified platform for the build is
233Redhat 6.1. The above variable ensures that all the errors related to
234compiling on a non-certified platform will be converted to warnings.</para>
235
236<para><command>export MAKE_VERBOSE=true</command>: Allows the current
237compilation command to be displayed on the console.</para>
238
239<para><command>export ALT_CACERTS_FILE...</command>: Specifies the
240certificate file to use.</para>
241
242</sect2>
243
244<sect2>
245<title>Configuring <application>J2SDK</application></title>
246
247<sect3><title>Configuration Information</title>
248
249<para>We have two Java 2 <acronym>SDK</acronym>'s installed in
250<filename>/opt/j2sdk</filename>. Decide on which one you
251would like to use as the default. For example if you decide to use the source
252compiled <application>J2SDK</application>, do the following:</para>
253
254<screen><userinput><command>ln -nsf j2sdk-&j2sdk-src-version; /opt/j2sdk/j2sdk</command></userinput></screen>
255
256<para>Add the following lines to your shell startup file (e.g.,
257<filename>/etc/profile</filename>).</para>
258
259<screen><userinput>export JAVA_HOME=/opt/j2sdk/j2sdk
260export PATH=$PATH:$JAVA_HOME/bin</userinput></screen>
261
262<para>Add <filename>$JAVA_HOME/man</filename> to your
263<envar>MANPATH</envar> variable or to
264<filename>/etc/man.conf</filename></para>
265
266<para>The <application>Java</application> plugin is in the directory
267<filename class="directory">$JAVA_HOME/jre/plugin/i?86/ns610/</filename>.
268Make a symbolic link to the file in that directory from your plugins directory.
269Note that plugin must be a symlink for it to work. If not, the browsers
270just crash when a Java plugin is attempted to be loaded.</para>
271
272</sect3>
273
274<sect3><title>Handling CLASSPATH</title>
275
276<para>When compiling packages, the <envar>CLASSPATH</envar> environment variable
277is used by JDK to locate classes at compile-time and run-time. It is tedious to
278add all the classes used to the <envar>CLASSPATH</envar> manually. You may add
279the following lines to your shell startup file to set <envar>CLASSPATH</envar>
280automatically to include all JAR files in a specified directory, which in
281the example below is <filename>/usr/lib/auto-java-classpath</filename>.</para>
282
283<screen><userinput>AUTO_CLASSPATH_DIR=/usr/lib/auto-java-classpath
284if [ -z $CLASSPATH ]
285then
286 CLASSPATH=.:$AUTO_CLASSPATH_DIR
287else
288 CLASSPATH=$CLASSPATH:.:$AUTO_CLASSPATH_DIR
289fi
290for i in $(ls $AUTO_CLASSPATH_DIR/*.jar 2>/dev/null)
291do
292 CLASSPATH=$CLASSPATH:$i
293done</userinput></screen>
294
295</sect3>
296
297</sect2>
298
299<sect2>
300<title>Contents</title>
301
302<para>The <application>J2SDK</application> package contains
303<command>appletviewer</command>,
304<command>extcheck</command>, <command>idlj</command>,
305<command>jar</command>, <command>jarsigner</command>,
306<command>java</command>, <command>javac</command>,
307<command>javadoc</command>, <command>javah</command>,
308<command>javap</command>, <command>jdb</command>,
309<command>keytool</command>, <command>native2ascii</command>,
310<command>orbd</command>, <command>policytool</command>,
311<command>rmic</command>, <command>rmid</command>,
312<command>rmiregistry</command>, <command>rmiregistry</command>,
313<command>serialver</command>, <command>servertool</command> and
314<command>tnameserv</command>.</para>
315
316</sect2>
317
318<sect2><title>Description</title>
319
320<sect3><title>appletviewer</title>
321<para><command>appletviewer</command> runs <application>Java</application>
322applets outside of the context of a browser.</para></sect3>
323
324<sect3><title>extcheck</title>
325<para><command>extcheck</command> checks a specified <filename>JAR</filename>
326file for title and version conflicts with any extensions installed in the
327<acronym>JDK</acronym> software.</para></sect3>
328
329<sect3><title>idlj</title>
330<para><command>idlj</command> generates <application>Java</application>
331bindings from a given <acronym>IDL</acronym> file.</para></sect3>
332
333<sect3><title>jar</title>
334<para><command>jar</command> combines multiple files into a single
335<acronym>JAR</acronym> archive file.</para></sect3>
336
337<sect3><title>jarsigner</title>
338<para><command>jarsigner</command> signs <filename>JAR</filename>
339(Java ARchive) files and verifies the signatures and integrity of a signed
340<filename>JAR</filename>.</para></sect3>
341
342<sect3><title>java</title>
343<para><command>java</command> launches a <application>Java</application>
344application by starting a <application>Java</application> runtime
345environment, loading a specified class and invoking its main
346method.</para></sect3>
347
348<sect3><title>javac</title>
349<para><command>javac</command> reads class and interface definitions, written
350in the <application>Java</application> programming language, and compiles them
351into bytecode class files.</para></sect3>
352
353<sect3><title>javadoc</title>
354<para><command>javadoc</command> parses the declarations and documentation
355comments in a set of <application>Java</application> source files and produces
356a corresponding set of <acronym>HTML</acronym> pages describing the classes,
357interfaces, constructors, methods, and fields.</para></sect3>
358
359<sect3><title>javah</title>
360<para><command>javah</command> generates <application>C</application> header
361and source files that are needed to implement native methods.</para></sect3>
362
363<sect3><title>javap</title>
364<para><command>javap</command> disassembles a
365<application>Java</application> class file.</para></sect3>
366
367<sect3><title>jdb</title>
368<para><command>jdb</command> is a simple command-line debugger for
369<application>Java</application> classes.</para></sect3>
370
371<sect3><title>keytool</title>
372<para><command>keytool</command> is a key and certificate management
373utility.</para></sect3>
374
375<sect3><title>native2ascii</title>
376<para><command>native2ascii</command> converts files that contain non-supported
377character encoding into files containing Latin-1 or Unicode-encoded
378characters.</para></sect3>
379
380<sect3><title>orbd</title>
381<para><command>orbd</command> is used to enable clients to transparently locate
382and invoke persistent objects on servers in the <acronym>CORBA</acronym>
383environment.</para></sect3>
384
385<sect3><title>policytool</title>
386<para><command>policytool</command> creates and manages a policy file
387graphically.</para></sect3>
388
389<sect3><title>rmic</title>
390<para><command>rmic</command> generates stub and skeleton class files for
391remote objects from the names of compiled <application>Java</application>
392classes that contain remote object implementations.</para></sect3>
393
394<sect3><title>rmid</title>
395<para><command>rmid</command> starts the activation system daemon.</para>
396</sect3>
397
398<sect3><title>rmiregistry</title>
399<para><command>rmiregistry</command> creates and starts a remote object
400registry on the specified port on the current host.</para></sect3>
401
402<sect3><title>serialver</title>
403<para><command>serialver</command> returns the serialVersionUID for one or
404more classes in a form suitable for copying into an evolving class.</para>
405</sect3>
406
407<sect3><title>servertool</title>
408<para><command>servertool</command> provides an ease-of-use interface for
409application programmers to register, unregister, startup and shutdown a
410server.</para></sect3>
411
412<sect3><title>tnameserv</title>
413<para><command>tnameserv</command> starts the <application>Java</application>
414<acronym>IDL</acronym> name server.</para></sect3>
415
416</sect2>
417
418</sect1>
419
Note: See TracBrowser for help on using the repository browser.