source: general/prog/openjdk.xml@ dc0ec16

systemd-13485
Last change on this file since dc0ec16 was e9ac749, checked in by Christopher Gregory <cjg@…>, 9 years ago

Updated to subversion-1.8.11 and corrected download links for Openjdk.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/branches/systemd@15218 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 48.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY ojdk-upd "25">
8 <!ENTITY ojdk-bd "b18">
9 <!ENTITY ojdk-tarball "jdk8u&ojdk-upd;-&ojdk-bd;.tar.bz2">
10 <!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk8u/jdk8u">
11 <!ENTITY ojdk-download "&ojdk-repo;/archive/&ojdk-tarball;">
12
13 <!ENTITY anduin-download "http://anduin.linuxfromscratch.org/files/BLFS/OpenJDK-&openjdk-version;">
14
15 <!ENTITY ojdk-md5sum "a0e0db6c9b322b4639e150b43a374cea">
16 <!ENTITY ojdk-size "384 KB">
17
18 <!ENTITY corba-download "&anduin-download;/corba.tar.xz">
19 <!ENTITY corba-md5sum "8ebdf969cd72746a619ae479a1785b41">
20 <!ENTITY corba-size "912 KB">
21
22 <!ENTITY hotspot-download "&anduin-download;/hotspot.tar.xz">
23 <!ENTITY hotspot-md5sum "684776e6340ff192a818ac38d3d809f1">
24 <!ENTITY hotspot-size "6.2 MB">
25
26 <!ENTITY jaxp-download "&anduin-download;/jaxp.tar.xz">
27 <!ENTITY jaxp-md5sum "74d98254e16f79d7f88c8d3ee69f3742">
28 <!ENTITY jaxp-size "2.2 MB">
29
30 <!ENTITY jaxws-download "&anduin-download;/jaxws.tar.xz">
31 <!ENTITY jaxws-md5sum "24346979cfbba2d9093c02eb3cad8732">
32 <!ENTITY jaxws-size "2.1 MB">
33
34 <!ENTITY jdk-download "&anduin-download;/jdk.tar.xz">
35 <!ENTITY jdk-md5sum "9a9e1dc67e43efd246348048ecd717aa">
36 <!ENTITY jdk-size "36.2 MB">
37
38 <!ENTITY langtools-download "&anduin-download;/langtools.tar.xz">
39 <!ENTITY langtools-md5sum "b1e6dea259a362375a1084576282acd2">
40 <!ENTITY langtools-size "2.0 MB">
41
42 <!ENTITY nashorn-download "&anduin-download;/nashorn.tar.xz">
43 <!ENTITY nashorn-md5sum "cb457804b83babe31f20a9e7ae4944cf">
44 <!ENTITY nashorn-size "1.9 MB">
45
46 <!ENTITY jtreg-version "4.1-b10">
47 <!ENTITY jtreg-download "https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastStableBuild/artifact/jtreg&jtreg-version;.tar.gz">
48 <!ENTITY jtreg-md5sum "f48d6f8b748f869a5624d2c44998d54c">
49 <!ENTITY jtreg-size "122 KB">
50
51 <!ENTITY icedtea-web-download "http://icedtea.classpath.org/download/source/icedtea-web-&icedtea-web-version;.tar.gz">
52
53 <!ENTITY ojdk-buildsize "3 GB">
54 <!ENTITY ojdk-time "10 SBU (an additional 100 SBU for testsuite)">
55]>
56
57<sect1 id="openjdk"
58 xreflabel="OpenJDK-&openjdk-version;">
59 <?dbhtml filename="openjdk.html" ?>
60
61 <sect1info>
62 <othername>$LastChangedBy$</othername>
63 <date>$Date$</date>
64 </sect1info>
65
66 <title>OpenJDK-&openjdk-version;</title>
67
68 <indexterm zone="openjdk">
69 <primary sortas="a-OpenJDK">OpenJDK</primary>
70 </indexterm>
71
72 <sect2 role="package">
73 <title>Introduction to OpenJDK</title>
74
75 <para>
76 <application>OpenJDK</application> is an open-source implementation
77 of Oracle's Java Standard Edition platform.
78 <application>OpenJDK</application> is useful for developing
79 <application>Java</application> programs, and provides a complete
80 runtime environment to run <application>Java</application> programs.
81 </para>
82
83 &lfs76_checked;
84
85 <note>
86 <para>
87 A browser plugin and webstart implementation, as well as a
88 pulseaudio sound backend are provided by the Icedtea project. To provide
89 a complete implementation, you will need to later install
90 <xref linkend="icedtea-web"/> and <xref linkend="icedtea-sound"/>.
91 </para>
92 </note>
93
94 <para>
95 OpenJDK is GPL'd code, with a special exception made for non-free
96 projects to use these classes in their proprietary products.
97 In similar fashion to the LGPL, which allows non-free programs to link
98 to libraries provided by free software, the
99 <ulink url="http://openjdk.java.net/legal/gplv2+ce.html">GNU
100 General Public License, version 2, with the Classpath Exception</ulink>
101 allows third party programs to use classes provided by free software
102 without the requirement that the third party software also be free. As
103 with the LGPL, any modifications made to the free software portions of a
104 third party application, must also be made freely available.
105 </para>
106
107 <note>
108 <para>
109 The <application>OpenJDK</application> source includes a very
110 thorough, open source test suite using the
111 <application>JTreg</application> test harness. The testing instructions
112 below allow to test the just built JDK for reasonable compatibility
113 with the proprietary Oracle JDK. However, in order for an independent
114 implementation to claim compatibility, it must pass a proprietary
115 <application>JCK/TCK</application> test suite. No claims of
116 compatibility, even partial compatibility, may be made without passing
117 an approved test suite.
118 </para>
119
120 <para>
121 Oracle does provide free community access, on a case by case basis, to
122 a closed toolkit to ensure 100% compatibility with its proprietary JDK.
123 Neither the binary version provided on the <xref linkend="java"/> page
124 nor the JVM built with the instructions below have been tested against
125 the <ulink
126 url="http://openjdk.java.net/groups/conformance/JckAccess/jck-access.html">
127 TCK</ulink>. Any version that is built using the instructions given,
128 cannot claim to be compatible with the proprietary JDK, without the
129 user applying for, and completing the compatibility tests themselves.
130 </para>
131
132 <para>
133 With that in mind, the binaries produced using this build method are
134 regularly tested against the TCK by the members listed on the site
135 above. In addition to the community license above, an educational,
136 non-commercial license for the TCK can be obtained from <ulink
137 url="http://www.oracle.com/technetwork/java/index-137188.html">
138 here</ulink>.
139 </para>
140 </note>
141
142 <bridgehead renderas="sect3">Source Package Information</bridgehead>
143 <itemizedlist spacing="compact">
144 <listitem>
145 <para>OpenJDK Root Package
146 <simplelist>
147 <member>Download: <ulink url="&ojdk-download;"/></member>
148 <member>Download MD5 sum: &ojdk-md5sum;</member>
149 <member>Download Size: &ojdk-size;</member>
150 </simplelist>
151 </para>
152 </listitem>
153 </itemizedlist>
154
155 <para>
156 The following files may be downladed from the OpenJDK mercurial
157 repository using the addresses <ulink
158 url="&ojdk-repo;&lt;component&gt;/archive/&ojdk-tarball;"/>,
159 where &lt;component&gt; is the name of the JVM component (corba,
160 hostspot, and so on), but that involves renaming the downloaded files,
161 and renaming the extracted directories.
162 For convenience, the BLFS editors have made the files available in an LFS
163 website.
164 </para>
165
166 <itemizedlist spacing="compact">
167 <listitem>
168 <para>Corba Source
169 <simplelist>
170 <member>Download: <ulink url="&corba-download;"/></member>
171 <member>Download MD5 sum: &corba-md5sum;</member>
172 <member>Download Size: &corba-size;</member>
173 </simplelist>
174 </para>
175 </listitem>
176 <listitem>
177 <para>Hotspot Source
178 <simplelist>
179 <member>Download: <ulink url="&hotspot-download;"/></member>
180 <member>Download MD5 sum: &hotspot-md5sum;</member>
181 <member>Download Size: &hotspot-size;</member>
182 </simplelist>
183 </para>
184 </listitem>
185 <listitem>
186 <para>JAXP Source
187 <simplelist>
188 <member>Download: <ulink url="&jaxp-download;"/></member>
189 <member>Download MD5 sum: &jaxp-md5sum;</member>
190 <member>Download Size: &jaxp-size;</member>
191 </simplelist>
192 </para>
193 </listitem>
194 <listitem>
195 <para>JAXWS Source
196 <simplelist>
197 <member>Download: <ulink url="&jaxws-download;"/></member>
198 <member>Download MD5 sum: &jaxws-md5sum;</member>
199 <member>Download Size: &jaxws-size;</member>
200 </simplelist>
201 </para>
202 </listitem>
203 <listitem>
204 <para>Langtools Source
205 <simplelist>
206 <member>Download: <ulink url="&langtools-download;"/></member>
207 <member>Download MD5 sum: &langtools-md5sum;</member>
208 <member>Download Size: &langtools-size;</member>
209 </simplelist>
210 </para>
211 </listitem>
212 <listitem>
213 <para>JDK Source
214 <simplelist>
215 <member>Download: <ulink url="&jdk-download;"/></member>
216 <member>Download MD5 sum: &jdk-md5sum;</member>
217 <member>Download Size: &jdk-size;</member>
218 </simplelist>
219 </para>
220 </listitem>
221 <listitem>
222 <para>Nashorn Source
223 <simplelist>
224 <member>Download: <ulink url="&nashorn-download;"/></member>
225 <member>Download MD5 sum: &nashorn-md5sum;</member>
226 <member>Download Size: &nashorn-size;</member>
227 </simplelist>
228 </para>
229 </listitem>
230 <listitem>
231 <para>Estimated disk space required: &ojdk-buildsize;</para>
232 </listitem>
233 <listitem>
234 <para>Estimated build time: &ojdk-time;</para>
235 </listitem>
236 </itemizedlist>
237
238 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
239
240 <itemizedlist spacing='compact'>
241 <listitem>
242 <para>
243 Optional package (to get an icon for the
244 <filename>openjdk-8-policytool.desktop</filename> file):
245 <ulink url="&icedtea-web-download;"/>
246 </para>
247 </listitem>
248 <listitem>
249 <para>
250 Optional test harness: <ulink url="&jtreg-download;"/>
251 </para>
252 </listitem>
253 </itemizedlist>
254
255 <bridgehead renderas="sect3">OpenJDK Dependencies</bridgehead>
256
257 <bridgehead renderas="sect4">Required Dependencies</bridgehead>
258 <para role="required">
259 An existing binary (<xref linkend="java"/> or an earlier built
260 version of this package),
261 <xref linkend="alsa-lib"/>,
262 <xref linkend="cpio"/>,
263 <xref linkend="cups"/>,
264 <xref linkend="unzip"/>,
265 <xref linkend="which"/>,
266 <xref linkend="xorg7-lib"/>, and
267 <xref linkend="zip"/>
268 </para>
269
270 <bridgehead renderas="sect4">Recommended</bridgehead>
271 <para role="recommended">
272 <xref linkend="cacerts"/> and
273 <xref linkend="giflib"/>
274 </para>
275
276 <bridgehead renderas="sect4">Optional</bridgehead>
277 <para role="optional">
278 <xref linkend="mercurial"/> and
279 <xref linkend="twm"/> (for the tests)
280 </para>
281
282 <para condition="html" role="usernotes">User Notes:
283 <ulink url="&blfs-wiki;/openjdk"/></para>
284
285 </sect2>
286
287 <sect2 role="installation">
288 <title>Installation of OpenJDK</title>
289
290 <para>
291 Unlike other packages in BLFS, the <application>OpenJDK</application>
292 source packages are distributed in multiple tar balls. You need to first
293 extract the source root from <filename>&ojdk-tarball;</filename>, change
294 into the extracted directory, then proceed with the following
295 instructions:
296 </para>
297
298<screen><userinput>tar -xf ../corba.tar.xz &amp;&amp;
299tar -xf ../hotspot.tar.xz &amp;&amp;
300tar -xf ../jaxp.tar.xz &amp;&amp;
301tar -xf ../jaxws.tar.xz &amp;&amp;
302tar -xf ../jdk.tar.xz &amp;&amp;
303tar -xf ../langtools.tar.xz &amp;&amp;
304tar -xf ../nashorn.tar.xz</userinput></screen>
305
306 <para>
307 If you have downloaded the test harness, unpack it too:
308 </para>
309
310<screen><userinput>tar -xf ../jtreg&jtreg-version;.tar.gz</userinput></screen>
311
312<!--TODO: it might be better to add instructions for the cacerts file at
313this place and to use the switch "with-cacerts-file" -->
314
315 <para>
316 Fix an issue with the new (since 5.1.0) giflib API:
317 </para>
318
319<screen><userinput>sed -e 's/DGifCloseFile(gif/&amp;, NULL/' \
320 -e '/DGifOpen/s/c)/c, NULL)/' \
321 -i jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c</userinput></screen>
322
323 <para>
324 Fix a bug in a shell script used to set the flags for
325 <command>make</command>:
326 </para>
327
328<screen><userinput>sed 's/\([ \t]\)\]\([^\]\)/\1I]\2/g' \
329 -i hotspot/make/linux/makefiles/adjust-mflags.sh</userinput></screen>
330
331 <note>
332 <para>
333 Before proceeding, you should ensure that your environment
334 <envar>PATH</envar> variable contains the location of the Java
335 compilers used for bootstrapping <application>OpenJDK</application>.
336 This is the only requirement for the environment. Modern Java
337 installations do not need <envar>JAVA_HOME</envar> and
338 <envar>CLASSPATH</envar> is not used here. Furthermore, OpenJDK
339 developers recommand to unset <envar>JAVA_HOME</envar>.
340 </para>
341
342 <para>
343 The build system does not support the <option>-j</option> switch in
344 <envar>MAKEFLAGS</envar>.
345 </para>
346 </note>
347
348 <para>Configure and build the package with the following commands
349 (--with-milestone value can be modified to fit user preferences):</para>
350
351<screen><userinput>unset JAVA_HOME &amp;&amp;
352sh ./configure \
353 --with-update-version=&ojdk-upd; \
354 --with-build-number=&ojdk-bd; \
355 --with-milestone=BLFS \
356 --enable-unlimited-crypto \
357 --with-zlib=system \
358 --with-giflib=system &amp;&amp;
359make DEBUG_BINARIES=true all</userinput></screen>
360
361 <para>
362 It seems that the test infrastructure of OpenJDK is a work in
363 progress, so that testing the newly built JVM involves several steps.
364 First, it is better to run the test suite in a frame buffer on a
365 different display, using Xvfb:
366 </para>
367
368<!-- Careful with the && below:
369"export DISPLAY=... && somecommand &" exports only DISPLAY to "somecommand"
370but not to the current environment, and
371"echo $! .... &&" does not echo the right PID. SO all && suppressed.-->
372<screen role='nodump'><userinput>if [ -n "$DISPLAY" ]; then
373 OLD_DISP=$DISPLAY
374fi
375export DISPLAY=:20
376nohup Xvfb $DISPLAY \
377 -fbdir $(pwd) \
378 -pixdepths 8 16 24 32 > Xvfb.out 2>&amp;1 &amp;
379echo $! > Xvfb.pid
380echo Waiting for Xvfb to initialize; sleep 1
381nohup twm -display $DISPLAY \
382 -f /dev/null > twm.out 2>&amp;1 &amp;
383echo $! > twm.pid
384echo Waiting for twm to initialize; sleep 1
385xhost +</userinput></screen>
386
387 <para>
388 Then, it is necessary to modify some files:
389 </para>
390
391<screen role='nodump'><userinput>echo -e "
392jdk_all = :jdk_core \\
393 :jdk_svc \\
394 :jdk_beans \\
395 :jdk_imageio \\
396 :jdk_sound \\
397 :jdk_sctp \\
398 com/sun/awt \\
399 javax/accessibility \\
400 javax/print \\
401 sun/pisces \\
402 com/sun/java/swing" >> jdk/test/TEST.groups &amp;&amp;
403sed -e 's/all:.*jck.*/all: jtreg/' \
404 -i langtools/test/Makefile</userinput></screen>
405
406 <para>
407 Some variables have to be set:
408 </para>
409
410<screen role='nodump'><userinput>JT_JAVA=$(type -p javac | sed 's@/bin.*@@') &amp;&amp;
411JT_HOME=$(pwd)/jtreg &amp;&amp;
412PRODUCT_HOME=$(echo $(pwd)/build/*/images/j2sdk-image)</userinput></screen>
413
414 <para>
415 The tests are run as follows:
416 </para>
417
418<screen role='nodump'><userinput>LANG=C make -k -C test \
419 JT_HOME=${JT_HOME} \
420 JT_JAVA=${JT_JAVA} \
421 PRODUCT_HOME=${PRODUCT_HOME} all &amp;&amp;
422LANG=C ${JT_HOME}/linux/bin/jtreg -a -v:fail,error \
423 -dir:$(pwd)/hotspot/test \
424 -k:\!ignore \
425 -jdk:${PRODUCT_HOME} \
426 :jdk</userinput></screen>
427
428 <para>
429 The test results can be compared to
430 <ulink url="http://download.java.net/openjdk/testresults/8/">these
431 results</ulink>.
432 Finally, stop the virtual frame buffer and clean up:
433 </para>
434
435<screen role='nodump'><userinput>kill -9 `cat twm.pid` &amp;&amp;
436kill -9 `cat Xvfb.pid` &amp;&amp;
437rm -f Xvfb.out twm.out &amp;&amp;
438rm -f Xvfb.pid twm.pid &amp;&amp;
439if [ -n "$OLD_DISP" ]; then
440 DISPLAY=$OLD_DISP
441fi</userinput></screen>
442
443 <para>Install the package with the following commands as the
444 <systemitem class="username">root</systemitem> user:</para>
445
446<screen role="root"><userinput>find build/*/images/j2sdk-image -iname \*.jar -exec chmod a+r {} \; &amp;&amp;
447chmod a+r build/*/images/j2sdk-image/lib/ct.sym &amp;&amp;
448find build/*/images/j2sdk-image -iname \*.diz -delete &amp;&amp;
449find build/*/images/j2sdk-image -iname \*.debuginfo -delete &amp;&amp;
450cp -R build/*/images/j2sdk-image /opt/OpenJDK-&openjdk-version; &amp;&amp;
451chown -R root:root /opt/OpenJDK-&openjdk-version;</userinput></screen>
452
453 <para>If desired, you may install a <filename class="extension">.desktop</filename>
454 file so <command>policytool</command> can be accessed from a desktop menu. First,
455 you need to obtain an icon from the <xref linkend="icedtea-web"/>
456 tarball:</para>
457
458<screen role="root"><userinput>tar -xf icedtea-web-&icedtea-web-version;.tar.gz \
459 icedtea-web-&icedtea-web-version;/javaws.png \
460 --strip-components=1</userinput></screen>
461
462 <para>Now, as <systemitem class="username">root</systemitem> user:</para>
463
464<screen role="root"><userinput>mkdir -pv /usr/share/applications &amp;&amp;
465
466cat &gt; /usr/share/applications/openjdk-8-policytool.desktop &lt;&lt; "EOF" &amp;&amp;
467<literal>[Desktop Entry]
468Name=OpenJDK Java Policy Tool
469Name[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
470Comment=OpenJDK Java Policy Tool
471Comment[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
472Exec=/opt/jdk/bin/policytool
473Terminal=false
474Type=Application
475Icon=javaws
476Categories=Settings;</literal>
477EOF
478
479install -v -Dm644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
480
481 <para>The choice of pt_BR is just an example. You can delete those lines
482 or replace them by corresponding ones in your locale, e.g. fr_FR, with the
483 "Name[fr_FR]" and "Comment[fr_FR]" values given by your translations.</para>
484
485 </sect2>
486
487 <sect2 role="commands">
488 <title>Command Explanations</title>
489
490 <para>
491 <command>sh configure...</command>: the top level
492 <filename>configure</filename> is a wrapper around the autotools one.
493 It is not executable and must be run through <command>sh</command>.
494 </para>
495
496 <para>
497 <option>--with-boot-jdk</option>: This switch provides the
498 location of the temporary <application>JDK</application>. It is normally
499 not needed if <command>java</command> is found in the <envar>PATH</envar>.
500 </para>
501
502 <para>
503 <parameter>--with-update-version</parameter>: Currently, the build
504 system does not include the update number in the version string. It has
505 to be specified here.
506 </para>
507
508 <para>
509 <parameter>--with-build-number</parameter>: Again, the build
510 system does not include the build number in the version string. It has
511 to be specified here too.
512 </para>
513
514 <para>
515 <parameter>--with-milestone</parameter>: Used to customize the
516 version string.
517 </para>
518
519 <para>
520 <parameter>--enable-unlimited-crypto</parameter>: Because of limitations
521 on the usage of cryptography in some countries, there is the possibility
522 to limit the size of encryption keys and the use of some algorithms in a
523 policy file. This switch allows to ship a policy file with no
524 restriction. It is the responsability of the user to ensure proper
525 adherence to the law.
526 </para>
527
528 <para>
529 <parameter>--with-zlib=system, --with-giflib=system</parameter>: Allows
530 to use the system libraries instead of the bundled ones.
531 </para>
532
533 <para>
534 <option>--with-jobs=N</option>: Allows to set the number
535 of jobs for <command>make</command> equal to N. The default is the
536 result of a calculation involving the available memory and the number
537 of processors. The SBU given above are with parallel jobs disabled.
538 </para>
539
540 <para>
541 <option>--with-cacerts-file=...</option>: Specifies where to find a
542 <filename>cacerts</filename> file. Otherwise, an empty one is created.
543 You can get it from an earlier version of the package, or using the
544 script below to generate one.
545 </para>
546 <para>
547 <command>make DEBUG_BINARIES=true all</command>: The build fails
548 if DEBUG_BINARIES is not set to true.
549 </para>
550
551 <para>
552 <command>find ... -iname '*.jar' -exec chmod a+r {} \;</command>
553 and following line: Fix permission in some library files, in order to
554 allow all users to access them.
555 </para>
556
557 <para>
558 <command>find ... -iname '*.diz' -delete</command>: This command and the
559 the next one remove redundant files.
560 </para>
561
562 </sect2>
563
564 <sect2 role="configuration" id="openjdk-config" xreflabel="Configuring OpenJDK" >
565 <title>Configuring OpenJDK</title>
566
567 <sect3>
568 <title>Configuration Information</title>
569
570 <para>
571 There are now two <application>OpenJDK</application> SDKs installed
572 in <filename class="directory">/opt</filename>. You should decide on
573 which one you would like to use as the default. For example if you
574 decide to use the precompiled <application>OpenJDK</application>, do
575 the following as the <systemitem class="username">root</systemitem>
576 user:
577 </para>
578
579<screen role="root"><userinput>ln -sfv OpenJDK-&openjdk-version;-bin /opt/jdk</userinput></screen>
580
581 <para>The information below assumes your system is set up using the
582 instructions found in <quote><xref
583 linkend="postlfs-config-profile"/></quote>. You may need to extract the
584 relevant information below and incorporate it into your system's startup
585 files if your system is set up differently.</para>
586
587 <para>Add the following <filename>openjdk.sh</filename> shell startup
588 file to the <filename>/etc/profile.d</filename> directory with the
589 following commands as the <systemitem class="username">root</systemitem>
590 user:</para>
591
592<screen role="root"><userinput>cat &gt;&gt; /etc/profile.d/openjdk.sh &lt;&lt; "EOF"
593<literal># Begin /etc/profile.d/openjdk.sh
594
595# Set JAVA_HOME directory
596JAVA_HOME=/opt/jdk
597
598# Adjust PATH
599pathappend $JAVA_HOME/bin PATH
600
601pathappend $JAVA_HOME/include C_INCLUDE_PATH
602pathappend $JAVA_HOME/include/linux C_INCLUDE_PATH
603pathappend $JAVA_HOME/include CPLUS_INCLUDE_PATH
604pathappend $JAVA_HOME/include/linux CPLUS_INCLUDE_PATH
605
606# Auto Java CLASSPATH
607# Copy jar files to, or create symlinks in this directory
608
609AUTO_CLASSPATH_DIR=/usr/share/java
610
611pathprepend . CLASSPATH
612
613for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
614 pathappend $dir CLASSPATH
615done
616
617for jar in `find ${AUTO_CLASSPATH_DIR} -name "*.jar" 2>/dev/null`; do
618 pathappend $jar CLASSPATH
619done
620
621export JAVA_HOME CLASSPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
622unset AUTO_CLASSPATH_DIR dir jar
623
624# End /etc/profile.d/openjdk.sh</literal>
625EOF</userinput></screen>
626
627 <para>Finally, add the man pages to <application>man_db</application>'s
628 configuration. As the <systemitem class="username">root</systemitem>
629 user:</para>
630
631<screen role="root"><userinput>cat >> /etc/profile.d/extrapaths.sh &lt;&lt; "EOF" &amp;&amp;
632<literal># Begin Java addition
633if ! [ -n $MANPATH ]; then
634 MANPATH=:/opt/jdk/man
635else
636 pathappend /opt/jdk/man MANPATH
637fi
638# End Java addition</literal>
639EOF
640
641
642cat &gt;&gt; /etc/man_db.conf &lt;&lt; "EOF" &amp;&amp;
643<literal># Begin Java addition
644MANDATORY_MANPATH /opt/jdk/man
645MANPATH_MAP /opt/jdk/bin /opt/jdk/man
646MANDB_MAP /opt/jdk/man /var/cache/man/jdk
647# End Java addition</literal>
648EOF
649
650mkdir -p /var/cache/man
651mandb -c /opt/jdk/man</userinput></screen>
652
653 <para>To test the man pages are correctly installed, issue <command>source /etc/profile</command> and <command>man java</command> to display the respective man page.</para>
654
655 </sect3>
656
657 <sect3 id='ojdk-certs'>
658 <title>Install or update the JRE Certificate Authority Certificates (cacerts) file</title>
659
660 <para>
661 Use the following procedure to install the
662 <filename>cacerts</filename> or to generate a new one if
663 <xref linkend="cacerts"/> have been updated. First, if it is not
664 already present, generate the <command>mkcacerts</command> script
665 as the <systemitem class="username">root</systemitem> user:
666 </para>
667
668<screen role="root"><userinput>cat &gt; /opt/jdk/bin/mkcacerts &lt;&lt; "EOF"
669<literal>#!/bin/sh
670# Simple script to extract x509 certificates and create a JRE cacerts file.
671
672function get_args()
673 {
674 if test -z "${1}" ; then
675 showhelp
676 exit 1
677 fi
678
679 while test -n "${1}" ; do
680 case "${1}" in
681 -f | --cafile)
682 check_arg $1 $2
683 CAFILE="${2}"
684 shift 2
685 ;;
686 -d | --cadir)
687 check_arg $1 $2
688 CADIR="${2}"
689 shift 2
690 ;;
691 -o | --outfile)
692 check_arg $1 $2
693 OUTFILE="${2}"
694 shift 2
695 ;;
696 -k | --keytool)
697 check_arg $1 $2
698 KEYTOOL="${2}"
699 shift 2
700 ;;
701 -s | --openssl)
702 check_arg $1 $2
703 OPENSSL="${2}"
704 shift 2
705 ;;
706 -h | --help)
707 showhelp
708 exit 0
709 ;;
710 *)
711 showhelp
712 exit 1
713 ;;
714 esac
715 done
716 }
717
718function check_arg()
719 {
720 echo "${2}" | grep -v "^-" > /dev/null
721 if [ -z "$?" -o ! -n "$2" ]; then
722 echo "Error: $1 requires a valid argument."
723 exit 1
724 fi
725 }
726
727# The date binary is not reliable on 32bit systems for dates after 2038
728function mydate()
729 {
730 local y=$( echo $1 | cut -d" " -f4 )
731 local M=$( echo $1 | cut -d" " -f1 )
732 local d=$( echo $1 | cut -d" " -f2 )
733 local m
734
735 if [ ${d} -lt 10 ]; then d="0${d}"; fi
736
737 case $M in
738 Jan) m="01";;
739 Feb) m="02";;
740 Mar) m="03";;
741 Apr) m="04";;
742 May) m="05";;
743 Jun) m="06";;
744 Jul) m="07";;
745 Aug) m="08";;
746 Sep) m="09";;
747 Oct) m="10";;
748 Nov) m="11";;
749 Dec) m="12";;
750 esac
751
752 certdate="${y}${m}${d}"
753 }
754
755function showhelp()
756 {
757 echo "`basename ${0}` creates a valid cacerts file for use with IcedTea."
758 echo ""
759 echo " -f --cafile The path to a file containing PEM formated CA"
760 echo " certificates. May not be used with -d/--cadir."
761 echo " -d --cadir The path to a diectory of PEM formatted CA"
762 echo " certificates. May not be used with -f/--cafile."
763 echo " -o --outfile The path to the output file."
764 echo ""
765 echo " -k --keytool The path to the java keytool utility."
766 echo ""
767 echo " -s --openssl The path to the openssl utility."
768 echo ""
769 echo " -h --help Show this help message and exit."
770 echo ""
771 echo ""
772 }
773
774# Initialize empty variables so that the shell does not pollute the script
775CAFILE=""
776CADIR=""
777OUTFILE=""
778OPENSSL=""
779KEYTOOL=""
780certdate=""
781date=""
782today=$( date +%Y%m%d )
783
784# Process command line arguments
785get_args ${@}
786
787# Handle common errors
788if test "${CAFILE}x" == "x" -a "${CADIR}x" == "x" ; then
789 echo "ERROR! You must provide an x509 certificate store!"
790 echo "\'$(basename ${0}) --help\' for more info."
791 echo ""
792 exit 1
793fi
794
795if test "${CAFILE}x" != "x" -a "${CADIR}x" != "x" ; then
796 echo "ERROR! You cannot provide two x509 certificate stores!"
797 echo "\'$(basename ${0}) --help\' for more info."
798 echo ""
799 exit 1
800fi
801
802if test "${KEYTOOL}x" == "x" ; then
803 echo "ERROR! You must provide a valid keytool program!"
804 echo "\'$(basename ${0}) --help\' for more info."
805 echo ""
806 exit 1
807fi
808
809if test "${OPENSSL}x" == "x" ; then
810 echo "ERROR! You must provide a valid path to openssl!"
811 echo "\'$(basename ${0}) --help\' for more info."
812 echo ""
813 exit 1
814fi
815
816if test "${OUTFILE}x" == "x" ; then
817 echo "ERROR! You must provide a valid output file!"
818 echo "\'$(basename ${0}) --help\' for more info."
819 echo ""
820 exit 1
821fi
822
823# Get on with the work
824
825# If using a CAFILE, split it into individual files in a temp directory
826if test "${CAFILE}x" != "x" ; then
827 TEMPDIR=`mktemp -d`
828 CADIR="${TEMPDIR}"
829
830 # Get a list of staring lines for each cert
831 CERTLIST=`grep -n "^-----BEGIN" "${CAFILE}" | cut -d ":" -f 1`
832
833 # Get a list of ending lines for each cert
834 ENDCERTLIST=`grep -n "^-----END" "${CAFILE}" | cut -d ":" -f 1`
835
836 # Start a loop
837 for certbegin in `echo "${CERTLIST}"` ; do
838 for certend in `echo "${ENDCERTLIST}"` ; do
839 if test "${certend}" -gt "${certbegin}"; then
840 break
841 fi
842 done
843 sed -n "${certbegin},${certend}p" "${CAFILE}" > "${CADIR}/${certbegin}.pem"
844 keyhash=`${OPENSSL} x509 -noout -in "${CADIR}/${certbegin}.pem" -hash`
845 echo "Generated PEM file with hash: ${keyhash}."
846 done
847fi
848
849# Write the output file
850for cert in `find "${CADIR}" -type f -name "*.pem" -o -name "*.crt"`
851do
852
853 # Make sure the certificate date is valid...
854 date=$( ${OPENSSL} x509 -enddate -in "${cert}" -noout | sed 's/^notAfter=//' )
855 mydate "${date}"
856 if test "${certdate}" -lt "${today}" ; then
857 echo "${cert} expired on ${certdate}! Skipping..."
858 unset date certdate
859 continue
860 fi
861 unset date certdate
862 ls "${cert}"
863 tempfile=`mktemp`
864 certbegin=`grep -n "^-----BEGIN" "${cert}" | cut -d ":" -f 1`
865 certend=`grep -n "^-----END" "${cert}" | cut -d ":" -f 1`
866 sed -n "${certbegin},${certend}p" "${cert}" > "${tempfile}"
867 echo yes | env LC_ALL=C "${KEYTOOL}" -import -alias `basename "${cert}"` -keystore \
868 "${OUTFILE}" -storepass 'changeit' -file "${tempfile}"
869 rm "${tempfile}"
870done
871
872if test "${TEMPDIR}x" != "x" ; then
873 rm -rf "${TEMPDIR}"
874fi
875exit 0</literal>
876EOF
877
878chmod -c 0755 /opt/jdk/bin/mkcacerts</userinput></screen>
879
880 <note>
881 <para>
882 Doing a very large copy/paste directly to a terminal may result in a
883 corrupted file. Copying to an editor may overcome this issue.
884 </para>
885 </note>
886
887 <para>If you need to generate a <filename>cacerts</filename> file,
888 and there is already one in
889 <filename class="directory">/opt/jdk/jre/lib/security</filename>, it
890 is better to make a backup. Then, you can create a new one, as the
891 <systemitem class="username">root</systemitem> user:</para>
892
893<screen role="root"><userinput>/opt/jdk/bin/mkcacerts -d "/etc/ssl/certs/" -k "/opt/jdk/bin/keytool" \
894 -s "/usr/bin/openssl" -o "/opt/jdk/jre/lib/security/cacerts"</userinput></screen>
895
896 </sect3>
897
898 </sect2>
899
900 <sect2 role="content">
901 <title>Contents</title>
902
903 <segmentedlist>
904 <segtitle>Installed Programs</segtitle>
905 <segtitle>Installed Libraries</segtitle>
906 <segtitle>Installed Directory</segtitle>
907
908 <seglistitem>
909 <seg>appletviewer, extcheck, idlj, jar,
910 jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi,
911 jcmd, jconsole, jdb, jdeps, jhat, jinfo, jjs, jmap, jps,
912 jrunscript, jsadebugd, jstack, jstat, jstatd, keytool, mkcacerts,
913 native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry,
914 schemagen, serialver, servertool, tnameserv, unpack200,
915 wsgen, wsimport, and xjc</seg>
916 <seg>/opt/OpenJDK-&openjdk-version;/lib/*, and
917 /opt/OpenJDK-&openjdk-version;/jre/lib/*</seg>
918 <seg>/opt/OpenJDK-&openjdk-version;</seg>
919 </seglistitem>
920 </segmentedlist>
921
922 <variablelist>
923 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
924 <?dbfo list-presentation="list"?>
925 <?dbhtml list-presentation="table"?>
926
927 <varlistentry id="appletviewer">
928 <term><command>appletviewer</command></term>
929 <listitem>
930 <para>allows to run applets outside of a web browser.</para>
931 <indexterm zone="openjdk appletviewer">
932 <primary sortas="b-appletviewer">appletviewer</primary>
933 </indexterm>
934 </listitem>
935 </varlistentry>
936
937 <varlistentry id="extcheck">
938 <term><command>extcheck</command></term>
939 <listitem>
940 <para>checks a specified jar file for title and version conflicts
941 with any extensions installed in the
942 <application>OpenJDK</application> software.</para>
943 <indexterm zone="openjdk extcheck">
944 <primary sortas="b-extcheck">extcheck</primary>
945 </indexterm>
946 </listitem>
947 </varlistentry>
948
949 <varlistentry id="idlj">
950 <term><command>idlj</command></term>
951 <listitem>
952 <para>generates Java bindings from a given IDL file.</para>
953 <indexterm zone="openjdk idlj">
954 <primary sortas="b-idlj">idlj</primary>
955 </indexterm>
956 </listitem>
957 </varlistentry>
958
959 <varlistentry id="jar">
960 <term><command>jar</command></term>
961 <listitem>
962 <para>combines multiple files into a single jar archive.</para>
963 <indexterm zone="openjdk jar">
964 <primary sortas="b-jar">jar</primary>
965 </indexterm>
966 </listitem>
967 </varlistentry>
968
969 <varlistentry id="jarsigner">
970 <term><command>jarsigner</command></term>
971 <listitem>
972 <para>signs jar files and verifies the signatures and integrity
973 of a signed jar file.</para>
974 <indexterm zone="openjdk jarsigner">
975 <primary sortas="b-jarsigner">jarsigner</primary>
976 </indexterm>
977 </listitem>
978 </varlistentry>
979
980 <varlistentry id="java-prog">
981 <term><command>java</command></term>
982 <listitem>
983 <para>launches a Java application by starting a Java runtime
984 environment, loading a specified class and invoking its main
985 method.</para>
986 <indexterm zone="openjdk java-prog">
987 <primary sortas="b-java-prog">java</primary>
988 </indexterm>
989 </listitem>
990 </varlistentry>
991
992 <varlistentry id="javac">
993 <term><command>javac</command></term>
994 <listitem>
995 <para>reads class and interface definitions, written in the
996 Java programming language, and compiles them into bytecode
997 class files.</para>
998 <indexterm zone="openjdk javac">
999 <primary sortas="b-javac">javac</primary>
1000 </indexterm>
1001 </listitem>
1002 </varlistentry>
1003
1004 <varlistentry id="javadoc">
1005 <term><command>javadoc</command></term>
1006 <listitem>
1007 <para>parses the declarations and documentation comments in a
1008 set of Java source files and produces a corresponding set of
1009 HTML pages describing the classes, interfaces, constructors,
1010 methods, and fields.</para>
1011 <indexterm zone="openjdk javadoc">
1012 <primary sortas="b-javadoc">javadoc</primary>
1013 </indexterm>
1014 </listitem>
1015 </varlistentry>
1016
1017 <varlistentry id="javah">
1018 <term><command>javah</command></term>
1019 <listitem>
1020 <para>generates C header and source files
1021 that are needed to implement native methods.</para>
1022 <indexterm zone="openjdk javah">
1023 <primary sortas="b-javah">javah</primary>
1024 </indexterm>
1025 </listitem>
1026 </varlistentry>
1027
1028 <varlistentry id="javap">
1029 <term><command>javap</command></term>
1030 <listitem>
1031 <para>disassembles a Java class file.</para>
1032 <indexterm zone="openjdk javap">
1033 <primary sortas="b-javap">javap</primary>
1034 </indexterm>
1035 </listitem>
1036 </varlistentry>
1037
1038 <varlistentry id="java-rmi.cgi">
1039 <term><command>java-rmi.cgi</command></term>
1040 <listitem>
1041 <para>is the Java RMI client.</para>
1042 <indexterm zone="openjdk java-rmi.cgi">
1043 <primary sortas="b-java-rmi.cgi">java-rmi.cgi</primary>
1044 </indexterm>
1045 </listitem>
1046 </varlistentry>
1047
1048 <varlistentry id="jcmd">
1049 <term><command>jcmd</command></term>
1050 <listitem>
1051 <para>is a utility to send diagnostic command requests to a running
1052 Java Virtual Machine.</para>
1053 <indexterm zone="openjdk jcmd">
1054 <primary sortas="b-jcmd">jcmd</primary>
1055 </indexterm>
1056 </listitem>
1057 </varlistentry>
1058
1059 <varlistentry id="jconsole">
1060 <term><command>jconsole</command></term>
1061 <listitem>
1062 <para>is a graphical console tool to monitor and manage both
1063 local and remote Java applications and virtual machines.</para>
1064 <indexterm zone="openjdk jconsole">
1065 <primary sortas="b-jconsole">jconsole</primary>
1066 </indexterm>
1067 </listitem>
1068 </varlistentry>
1069
1070 <varlistentry id="jdb">
1071 <term><command>jdb</command></term>
1072 <listitem>
1073 <para>is a simple command-line debugger for Java classes.</para>
1074 <indexterm zone="openjdk jdb">
1075 <primary sortas="b-jdb">jdb</primary>
1076 </indexterm>
1077 </listitem>
1078 </varlistentry>
1079
1080 <varlistentry id="jdeps">
1081 <term><command>jdeps</command></term>
1082 <listitem>
1083 <para>shows the package-level or class-level dependencies of
1084 Java class files.</para>
1085 <indexterm zone="openjdk jdeps">
1086 <primary sortas="b-jdeps">jdeps</primary>
1087 </indexterm>
1088 </listitem>
1089 </varlistentry>
1090
1091 <varlistentry id="jhat">
1092 <term><command>jhat</command></term>
1093 <listitem>
1094 <para>parses a java heap dump file and allows viewing it
1095 in a web browser.</para>
1096 <indexterm zone="openjdk jhat">
1097 <primary sortas="b-jhat">jhat</primary>
1098 </indexterm>
1099 </listitem>
1100 </varlistentry>
1101
1102 <varlistentry id="jinfo">
1103 <term><command>jinfo</command></term>
1104 <listitem>
1105 <para>prints Java configuration information for a given Java
1106 process, core file, or a remote debug server.</para>
1107 <indexterm zone="openjdk jinfo">
1108 <primary sortas="b-jinfo">jinfo</primary>
1109 </indexterm>
1110 </listitem>
1111 </varlistentry>
1112
1113 <varlistentry id="jjs">
1114 <term><command>jjs</command></term>
1115 <listitem>
1116 <para>is a command-line tool used to invoke the Nashorn engine. It
1117 can be used to interpret one or several script files, or to run
1118 an interactive shell.</para>
1119 <indexterm zone="openjdk jjs">
1120 <primary sortas="b-jjs">jjs</primary>
1121 </indexterm>
1122 </listitem>
1123 </varlistentry>
1124
1125 <varlistentry id="jmap">
1126 <term><command>jmap</command></term>
1127 <listitem>
1128 <para>prints shared object memory maps or heap memory details
1129 of a given process, core file, or a remote debug server.</para>
1130 <indexterm zone="openjdk jmap">
1131 <primary sortas="b-jmap">jmap</primary>
1132 </indexterm>
1133 </listitem>
1134 </varlistentry>
1135
1136 <varlistentry id="jps">
1137 <term><command>jps</command></term>
1138 <listitem>
1139 <para>lists the instrumented JVMs on the target system.</para>
1140 <indexterm zone="openjdk jps">
1141 <primary sortas="b-jps">jps</primary>
1142 </indexterm>
1143 </listitem>
1144 </varlistentry>
1145
1146 <varlistentry id="jrunscript">
1147 <term><command>jrunscript</command></term>
1148 <listitem>
1149 <para>is a command line script shell.</para>
1150 <indexterm zone="openjdk jrunscript">
1151 <primary sortas="b-jrunscript">jrunscript</primary>
1152 </indexterm>
1153 </listitem>
1154 </varlistentry>
1155
1156 <varlistentry id="jsadebugd">
1157 <term><command>jsadebugd</command></term>
1158 <listitem>
1159 <para>attaches to a Java process or core file and acts as a
1160 debug server.</para>
1161 <indexterm zone="openjdk jsadebugd">
1162 <primary sortas="b-jsadebugd">jsadebugd</primary>
1163 </indexterm>
1164 </listitem>
1165 </varlistentry>
1166
1167 <varlistentry id="jstack">
1168 <term><command>jstack</command></term>
1169 <listitem>
1170 <para>prints Java stack traces of Java threads for a given
1171 Java process, core file, or a remote debug server.</para>
1172 <indexterm zone="openjdk jstack">
1173 <primary sortas="b-jstack">jstack</primary>
1174 </indexterm>
1175 </listitem>
1176 </varlistentry>
1177
1178 <varlistentry id="jstat">
1179 <term><command>jstat</command></term>
1180 <listitem>
1181 <para>displays performance statistics for an instrumented JVM.</para>
1182 <indexterm zone="openjdk jstat">
1183 <primary sortas="b-jstat">jstat</primary>
1184 </indexterm>
1185 </listitem>
1186 </varlistentry>
1187
1188 <varlistentry id="jstatd">
1189 <term><command>jstatd</command></term>
1190 <listitem>
1191 <para>is an RMI server application that monitors for the creation
1192 and termination of instrumented JVMs.</para>
1193 <indexterm zone="openjdk jstatd">
1194 <primary sortas="b-jstatd">jstatd</primary>
1195 </indexterm>
1196 </listitem>
1197 </varlistentry>
1198
1199 <varlistentry id="keytool">
1200 <term><command>keytool</command></term>
1201 <listitem>
1202 <para>is a key and certificate management utility.</para>
1203 <indexterm zone="openjdk keytool">
1204 <primary sortas="b-keytool">keytool</primary>
1205 </indexterm>
1206 </listitem>
1207 </varlistentry>
1208
1209 <varlistentry id="mkcacerts">
1210 <term><command>mkcacerts</command></term>
1211 <listitem>
1212 <para> is a simple script to extract x509 certificates and create
1213 a JRE cacerts file using <command>keytool</command>.</para>
1214 <indexterm zone="openjdk mkcacerts">
1215 <primary sortas="b-mkcacerts">mkcacerts</primary>
1216 </indexterm>
1217 </listitem>
1218 </varlistentry>
1219
1220 <varlistentry id="native2ascii">
1221 <term><command>native2ascii</command></term>
1222 <listitem>
1223 <para> converts files that contain non-supported character encoding
1224 into files containing Latin-1 or Unicode-encoded characters.</para>
1225 <indexterm zone="openjdk native2ascii">
1226 <primary sortas="b-native2ascii">native2ascii</primary>
1227 </indexterm>
1228 </listitem>
1229 </varlistentry>
1230
1231 <varlistentry id="orbd">
1232 <term><command>orbd</command></term>
1233 <listitem>
1234 <para>is used to enable clients to transparently locate and invoke
1235 persistent objects on servers in the CORBA environment.</para>
1236 <indexterm zone="openjdk orbd">
1237 <primary sortas="b-orbd">orbd</primary>
1238 </indexterm>
1239 </listitem>
1240 </varlistentry>
1241
1242 <varlistentry id="pack200">
1243 <term><command>pack200</command></term>
1244 <listitem>
1245 <para>is a Java application that transforms a jar file into a
1246 compressed pack200 file using the Java gzip compressor.</para>
1247 <indexterm zone="openjdk pack200">
1248 <primary sortas="b-pack200">pack200</primary>
1249 </indexterm>
1250 </listitem>
1251 </varlistentry>
1252
1253 <varlistentry id="policytool">
1254 <term><command>policytool</command></term>
1255 <listitem>
1256 <para>creates and manages a policy file graphically.</para>
1257 <indexterm zone="openjdk policytool">
1258 <primary sortas="b-policytool">policytool</primary>
1259 </indexterm>
1260 </listitem>
1261 </varlistentry>
1262
1263 <varlistentry id="rmic">
1264 <term><command>rmic</command></term>
1265 <listitem>
1266 <para>generates stub and skeleton class files for remote objects
1267 from the names of compiled Java classes that contain remote
1268 object implementations.</para>
1269 <indexterm zone="openjdk rmic">
1270 <primary sortas="b-rmic">rmic</primary>
1271 </indexterm>
1272 </listitem>
1273 </varlistentry>
1274
1275 <varlistentry id="rmid">
1276 <term><command>rmid</command></term>
1277 <listitem>
1278 <para>starts the activation system daemon.</para>
1279 <indexterm zone="openjdk rmid">
1280 <primary sortas="b-rmid">rmid</primary>
1281 </indexterm>
1282 </listitem>
1283 </varlistentry>
1284
1285 <varlistentry id="rmiregistry">
1286 <term><command>rmiregistry</command></term>
1287 <listitem>
1288 <para>creates and starts a remote object registry on the specified
1289 port on the current host.</para>
1290 <indexterm zone="openjdk rmiregistry">
1291 <primary sortas="b-rmiregistry">rmiregistry</primary>
1292 </indexterm>
1293 </listitem>
1294 </varlistentry>
1295
1296 <varlistentry id="schemagen">
1297 <term><command>schemagen</command></term>
1298 <listitem>
1299 <para>is a Java XML binding schema generator.</para>
1300 <indexterm zone="openjdk schemagen">
1301 <primary sortas="b-schemagen">schemagen</primary>
1302 </indexterm>
1303 </listitem>
1304 </varlistentry>
1305
1306 <varlistentry id="serialver">
1307 <term><command>serialver</command></term>
1308 <listitem>
1309 <para>returns the serialVersionUID for one or more classes in a
1310 form suitable for copying into an evolving class.</para>
1311 <indexterm zone="openjdk serialver">
1312 <primary sortas="b-serialver">serialver</primary>
1313 </indexterm>
1314 </listitem>
1315 </varlistentry>
1316
1317 <varlistentry id="servertool">
1318 <term><command>servertool</command></term>
1319 <listitem>
1320 <para>provides an ease-of-use interface for application programmers
1321 to register, unregister, startup and shutdown a server.</para>
1322 <indexterm zone="openjdk servertool">
1323 <primary sortas="b-servertool">servertool</primary>
1324 </indexterm>
1325 </listitem>
1326 </varlistentry>
1327
1328 <varlistentry id="tnameserv">
1329 <term><command>tnameserv</command></term>
1330 <listitem>
1331 <para>starts the Java IDL name server.</para>
1332 <indexterm zone="openjdk tnameserv">
1333 <primary sortas="b-tnameserv">tnameserv</primary>
1334 </indexterm>
1335 </listitem>
1336 </varlistentry>
1337
1338 <varlistentry id="unpack200">
1339 <term><command>unpack200</command></term>
1340 <listitem>
1341 <para>is a native implementation that transforms a packed file
1342 produced by <application>pack200</application> into a jar
1343 file.</para>
1344 <indexterm zone="openjdk unpack200">
1345 <primary sortas="b-unpack200">unpack200</primary>
1346 </indexterm>
1347 </listitem>
1348 </varlistentry>
1349
1350 <varlistentry id="wsgen">
1351 <term><command>wsgen</command></term>
1352 <listitem>
1353 <para>generates JAX-WS portable artifacts used in JAX-WS
1354 web services.</para>
1355 <indexterm zone="openjdk wsgen">
1356 <primary sortas="b-wsgen">wsgen</primary>
1357 </indexterm>
1358 </listitem>
1359 </varlistentry>
1360
1361 <varlistentry id="wsimport">
1362 <term><command>wsimport</command></term>
1363 <listitem>
1364 <para>generates JAX-WS portable artifacts.</para>
1365 <indexterm zone="openjdk wsimport">
1366 <primary sortas="b-wsimport">wsimport</primary>
1367 </indexterm>
1368 </listitem>
1369 </varlistentry>
1370
1371 <varlistentry id="xjc">
1372 <term><command>xjc</command></term>
1373 <listitem>
1374 <para>is a Java XML binding compiler.</para>
1375 <indexterm zone="openjdk xjc">
1376 <primary sortas="b-xjc">xjc</primary>
1377 </indexterm>
1378 </listitem>
1379 </varlistentry>
1380
1381 </variablelist>
1382
1383 </sect2>
1384
1385</sect1>
Note: See TracBrowser for help on using the repository browser.