source: general/prog/j2sdk.xml@ 52d29f7

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 52d29f7 was 52d29f7, checked in by Bruce Dubbs <bdubbs@…>, 20 years ago

XML Updates to Part III from DJ

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

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