source: general/prog/j2sdk.xml@ 6b5b87a6

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 6b5b87a6 was 6b5b87a6, checked in by DJ Lucas <dj@…>, 19 years ago

Added nptl patch to j2sdk additional downloads

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