source: general/prog/openjdk.xml@ d2b2d59

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since d2b2d59 was b82dab5, checked in by Chris Staub <chris@…>, 9 years ago

Spelling fix

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

  • Property mode set to 100644
File size: 48.5 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 "51">
8 <!ENTITY ojdk-bd "b16">
9 <!ENTITY ojdk-tarball "jdk8u&ojdk-upd;-&ojdk-bd;.tar.bz2">
10 <!ENTITY ojdk-repo "http://hg.openjdk.java.net/jdk8u/jdk8u60">
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 "b7ff36d84ddef546ea84e7e05c19a43f">
16 <!ENTITY ojdk-size "388 KB">
17
18 <!ENTITY corba-download "&anduin-download;/corba.tar.xz">
19 <!ENTITY corba-md5sum "90bf1db1628913a590b1be044dc61569">
20 <!ENTITY corba-size "918 KB">
21
22 <!ENTITY hotspot-download "&anduin-download;/hotspot.tar.xz">
23 <!ENTITY hotspot-md5sum "5702b0b10817111fd2136e9abc82f4d8">
24 <!ENTITY hotspot-size "6.3 MB">
25
26 <!ENTITY jaxp-download "&anduin-download;/jaxp.tar.xz">
27 <!ENTITY jaxp-md5sum "37afb7eea36dd0443baa6de379f441b1">
28 <!ENTITY jaxp-size "2.2 MB">
29
30 <!ENTITY jaxws-download "&anduin-download;/jaxws.tar.xz">
31 <!ENTITY jaxws-md5sum "180c01db60522f2e349348cca72ff90c">
32 <!ENTITY jaxws-size "2.2 MB">
33
34 <!ENTITY jdk-download "&anduin-download;/jdk.tar.xz">
35 <!ENTITY jdk-md5sum "0c0b0c3a4698ca8669e78251327ec3ad">
36 <!ENTITY jdk-size "36.4 MB">
37
38 <!ENTITY langtools-download "&anduin-download;/langtools.tar.xz">
39 <!ENTITY langtools-md5sum "b2f3787e284e1df1abe66d728e290abb">
40 <!ENTITY langtools-size "2.0 MB">
41
42 <!ENTITY nashorn-download "&anduin-download;/nashorn.tar.xz">
43 <!ENTITY nashorn-md5sum "9c9882d6b603274be3e9c7def0edba40">
44 <!ENTITY nashorn-size "2.1 MB">
45
46 <!ENTITY jtreg-version "4.1-b12-356">
47 <!ENTITY jtreg-download "&anduin-download;/jtreg&jtreg-version;.tar.xz">
48 <!ENTITY jtreg-md5sum "1c8609e1078411a4f6efdd0c194c1716">
49 <!ENTITY jtreg-size "7.2 MB">
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.6 GB (additional 536 MB for tests)">
54 <!ENTITY ojdk-time "10 SBU (additional 105 SBU for tests)">
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 &lfs77_checked;&gcc5_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 Recommended 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 an X Window manager such as <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 recommended test harness, unpack it too:
308 </para>
309
310<screen><userinput>tar -xf ../jtreg&jtreg-version;.tar.xz</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 One file in hotspot needs a change, since it relies on a non-normative
325 compiler behavior, which has changed with GCC version 5. Note that the change
326 works also with previous versions.
327 </para>
328
329<screen><userinput>sed -e 's/(hi - lo)/ hi - lo /' \
330 -e 's/(lo - hi)/ lo - hi /' \
331 -i hotspot/src/share/vm/opto/type.cpp</userinput></screen>
332
333 <note>
334 <para>
335 Before proceeding, you should ensure that your environment
336 <envar>PATH</envar> variable contains the location of the Java
337 compilers used for bootstrapping <application>OpenJDK</application>.
338 This is the only requirement for the environment. Modern Java
339 installations do not need <envar>JAVA_HOME</envar> and
340 <envar>CLASSPATH</envar> is not used here. Furthermore, OpenJDK
341 developers recommend to unset <envar>JAVA_HOME</envar>.
342 </para>
343
344 <para>
345 The build system does not support the <option>-j</option> switch in
346 <envar>MAKEFLAGS</envar>.
347 </para>
348 </note>
349
350 <para>Configure and build the package with the following commands
351 (--with-milestone value can be modified to fit user preferences):</para>
352
353<screen><userinput>unset JAVA_HOME &amp;&amp;
354sh ./configure \
355 --with-update-version=&ojdk-upd; \
356 --with-build-number=&ojdk-bd; \
357 --with-milestone=BLFS \
358 --enable-unlimited-crypto \
359 --with-zlib=system \
360 --with-giflib=system &amp;&amp;
361make DEBUG_BINARIES=true \
362 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \
363 all &amp;&amp;
364find build/*/images/j2sdk-image -iname \*.diz -delete
365</userinput></screen>
366
367 <note>
368 <para>
369 Testing will involve the interplay of pairs of JVMs using the
370 networking interface, so networking must be started. If it
371 isn't, not only will these tests fail, but the test cleanup
372 will leave orphaned JVMs running. There will be many of
373 them. Rebooting may be the easiest recovery.
374 </para>
375 </note>
376
377 <para>
378 Testing the newly built JVM involves several steps.
379 First, it is better to run the test suite in a frame buffer on a
380 different display, using Xvfb:
381 </para>
382
383<!-- Careful with the && below:
384"export DISPLAY=... && somecommand &" exports only DISPLAY to "somecommand"
385but not to the current environment, and
386"echo $! .... &&" does not echo the right PID. SO all && suppressed.-->
387<screen role='nodump'><userinput>if [ -n "$DISPLAY" ]; then
388 OLD_DISP=$DISPLAY
389fi
390export DISPLAY=:20
391nohup Xvfb $DISPLAY \
392 -fbdir $(pwd) \
393 -pixdepths 8 16 24 32 > Xvfb.out 2>&amp;1 &amp;
394echo $! > Xvfb.pid
395echo Waiting for Xvfb to initialize; sleep 1
396nohup twm -display $DISPLAY \
397 -f /dev/null > twm.out 2>&amp;1 &amp;
398echo $! > twm.pid
399echo Waiting for twm to initialize; sleep 1
400xhost +</userinput></screen>
401
402 <para>
403 Then, it is necessary to modify some files<!-- (replace &lt;N&gt; with the
404 number of JAVA VM allowed to run concurrently)-->:
405 </para>
406
407<screen role='nodump'><userinput>echo -e "
408jdk_all = :jdk_core \\
409 :jdk_svc \\
410 :jdk_beans \\
411 :jdk_imageio \\
412 :jdk_sound \\
413 :jdk_sctp \\
414 com/sun/awt \\
415 javax/accessibility \\
416 javax/print \\
417 sun/pisces \\
418 com/sun/java/swing" >> jdk/test/TEST.groups &amp;&amp;
419sed -e 's/all:.*jck.*/all: jtreg/' \
420 -e '/^JTREG /s@\$(JT_PLATFORM)/@@' \
421 -i langtools/test/Makefile<!-- &amp;&amp;
422sed -i 's@/win32@@' jdk/test/Makefile &amp;&amp;
423sed -e 's@JTREG_HOME@JT_PLATFORM="" &amp;@' \
424 -e 's@TEST="@CONCURRENCY=&lt;N&gt; &amp;@' \
425 -i test/Makefile--></userinput></screen>
426
427 <para>
428 Some variables have to be set:
429 </para>
430
431<screen role='nodump'><userinput>JT_JAVA=$(type -p javac | sed 's@/bin.*@@') &amp;&amp;
432JT_HOME=$(pwd)/jtreg &amp;&amp;
433PRODUCT_HOME=$(echo $(pwd)/build/*/images/j2sdk-image)</userinput></screen>
434
435 <para>
436 The tests are run as follows:
437 </para>
438
439<!-- no && here either, because the first "make" may return an error -->
440<screen role='nodump'><userinput>LANG=C make -k -C test \
441 JT_HOME=${JT_HOME} \
442 JT_JAVA=${JT_JAVA} \
443 PRODUCT_HOME=${PRODUCT_HOME} all
444LANG=C ${JT_HOME}/bin/jtreg -a -v:fail,error \
445 -dir:$(pwd)/hotspot/test \
446 -k:\!ignore \
447 -jdk:${PRODUCT_HOME} \
448<!-- -agentvm -conc:&lt;N&gt; \
449--> :jdk</userinput></screen>
450
451 <para>
452 The test results can be compared to
453 <ulink url="http://download.java.net/openjdk/testresults/8/">these
454 results</ulink>, although they usually are run on a newer version.
455 Some failures can be expected, the number of which depends on various
456 conditions, like whether the computer is connected to network. Also, some
457 tests may timeout if the machine is under load.
458 </para>
459
460 <para>
461 Next some cleanup has to be done. The instructions below only stop the
462 frame buffer, but it has been reported that some java VM may be left running
463 after the tests, so it is necessary to check orphaned processes:
464 </para>
465
466<screen role='nodump'><userinput>kill -9 `cat twm.pid` &amp;&amp;
467kill -9 `cat Xvfb.pid` &amp;&amp;
468rm -f Xvfb.out twm.out &amp;&amp;
469rm -f Xvfb.pid twm.pid &amp;&amp;
470if [ -n "$OLD_DISP" ]; then
471 DISPLAY=$OLD_DISP
472fi</userinput></screen>
473
474 <para>Install the package with the following commands as the
475 <systemitem class="username">root</systemitem> user:</para>
476
477<screen role="root"><userinput>cp -RT build/*/images/j2sdk-image /opt/OpenJDK-&openjdk-version; &amp;&amp;
478chown -R root:root /opt/OpenJDK-&openjdk-version;</userinput></screen>
479
480 <para>
481 There are now two <application>OpenJDK</application> SDKs installed
482 in <filename class="directory">/opt</filename>. You should decide on
483 which one you would like to use as the default. Normally, you would opt
484 for the just installed <application>OpenJDK</application>. If so, do
485 the following as the <systemitem class="username">root</systemitem>
486 user:
487 </para>
488
489<screen role="root"><userinput>ln -v -nsf OpenJDK-&openjdk-version; /opt/jdk</userinput></screen>
490
491 <para>If desired, you may install a .desktop file corresponding to an entry
492 in a desktop menu for <command>policytool</command>. First, you need to
493 obtain an icon from <xref linkend="icedtea-web"/>:</para>
494
495<screen><userinput>tar -xf ../icedtea-web-&icedtea-web-version;.tar.gz \
496 icedtea-web-&icedtea-web-version;/javaws.png \
497 --strip-components=1</userinput></screen>
498
499 <para>Now, as <systemitem class="username">root</systemitem> user:</para>
500
501<screen role="root"><userinput>mkdir -pv /usr/share/applications &amp;&amp;
502
503cat &gt; /usr/share/applications/openjdk-8-policytool.desktop &lt;&lt; "EOF" &amp;&amp;
504<literal>[Desktop Entry]
505Name=OpenJDK Java Policy Tool
506Name[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
507Comment=OpenJDK Java Policy Tool
508Comment[pt_BR]=OpenJDK Java - Ferramenta de Pol&#237;tica
509Exec=/opt/jdk/bin/policytool
510Terminal=false
511Type=Application
512Icon=javaws
513Categories=Settings;</literal>
514EOF
515
516install -v -Dm0644 javaws.png /usr/share/pixmaps/javaws.png</userinput></screen>
517
518 <para>The choice of pt_BR is just an example. You can add any translation
519 by adding lines corresponding to your locale, e.g. for fr_FR,
520 <quote>Name[fr_FR]=</quote> and <quote>Comment[fr_FR]=</quote> with the
521 appropriate text as values.</para>
522
523 </sect2>
524
525 <sect2 role="commands">
526 <title>Command Explanations</title>
527
528 <para>
529 <command>sh configure...</command>: the top level
530 <filename>configure</filename> is a wrapper around the autotools one.
531 It is not executable and must be run through <command>sh</command>.
532 </para>
533
534 <para>
535 <option>--with-boot-jdk</option>: This switch provides the
536 location of the temporary <application>JDK</application>. It is normally
537 not needed if <command>java</command> is found in the <envar>PATH</envar>.
538 </para>
539
540 <para>
541 <parameter>--with-update-version</parameter>: Currently, the build
542 system does not include the update number in the version string. It has
543 to be specified here.
544 </para>
545
546 <para>
547 <parameter>--with-build-number</parameter>: Again, the build
548 system does not include the build number in the version string. It has
549 to be specified here too.
550 </para>
551
552 <para>
553 <parameter>--with-milestone</parameter>: Used to customize the
554 version string.
555 </para>
556
557 <para>
558 <parameter>--enable-unlimited-crypto</parameter>: Because of limitations
559 on the usage of cryptography in some countries, there is the possibility
560 to limit the size of encryption keys and the use of some algorithms in a
561 policy file. This switch allows to ship a policy file with no
562 restriction. It is the responsability of the user to ensure proper
563 adherence to the law.
564 </para>
565
566 <para>
567 <parameter>--with-zlib=system, --with-giflib=system</parameter>: Allows
568 to use the system libraries instead of the bundled ones.
569 </para>
570
571 <para>
572 <option>--with-jobs=N</option>: Allows setting the number
573 of jobs for <command>make</command> equal to N. The default is the
574 result of a calculation involving the available memory and the number
575 of processors. Note that even if you specify N=1, some parallelization
576 may be used during the build. The SBU given above are with parallel jobs
577 disabled, on a single processor, single core, virtual machine.
578 </para>
579
580 <para>
581 <option>--with-cacerts-file=...</option>: Specifies where to find a
582 <filename>cacerts</filename> file, typically <filename>
583 /opt/jdk/jre/lib/security</filename>. Otherwise, an empty one is created.
584 You can get it from an earlier version of the package, or use the
585 script below to generate one.
586 </para>
587
588 <para>
589 <command>make DEBUG_BINARIES=true
590 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok all</command>: The build fails on
591 32 bit machines if DEBUG_BINARIES is not set to true. Furthermore, OS
592 version checking in hotspot's Makefile does not account for Linux version
593 4.x. Disabling the test is harmless and allows building.
594 </para>
595
596 <para>
597 <command>find ... -iname '*.diz' -delete</command>: This command
598 removes redundant files.
599 </para>
600
601 </sect2>
602
603 <sect2 role="configuration"
604 id="openjdk-config"
605 xreflabel="Configuring OpenJDK">
606 <title>Configuring OpenJDK</title>
607
608 <sect3>
609 <title>Configuration Information</title>
610
611 <para>Normally, the JAVA environment has been configured after installing
612 the binary version, and can be used with the just built package as well.
613 Review <xref linkend="ojdk-conf"/> in case you want to modify
614 something.</para>
615
616 <para>To test if the man pages are correctly installed, issue
617 <command>source /etc/profile</command> and <command>man java</command> to
618 display the respective man page.</para>
619
620 </sect3>
621
622 <sect3 id='ojdk-certs' xreflabel='JRE Certificate Authorithy Certificates'>
623 <title>Install or update the JRE Certificate Authority Certificates
624 (cacerts) file</title>
625
626 <para>
627 <application>OpenJDK</application> uses its own format for the
628 CA certificates. Those certificates are located in a file named <filename>
629 /opt/jdk/jre/lib/security/cacerts</filename>. That file may be generated
630 from the one installed using the instructions on the <xref
631 linkend="cacerts"/> page, using the following procedure.
632 First, generate the <command>mkcacerts</command> script
633 as the <systemitem class="username">root</systemitem> user:
634 </para>
635
636<screen role="root"><userinput>cat &gt; /opt/jdk/bin/mkcacerts &lt;&lt; "EOF"
637<literal>#!/bin/sh
638# Simple script to extract x509 certificates and create a JRE cacerts file.
639
640function get_args()
641 {
642 if test -z "${1}" ; then
643 showhelp
644 exit 1
645 fi
646
647 while test -n "${1}" ; do
648 case "${1}" in
649 -f | --cafile)
650 check_arg $1 $2
651 CAFILE="${2}"
652 shift 2
653 ;;
654 -d | --cadir)
655 check_arg $1 $2
656 CADIR="${2}"
657 shift 2
658 ;;
659 -o | --outfile)
660 check_arg $1 $2
661 OUTFILE="${2}"
662 shift 2
663 ;;
664 -k | --keytool)
665 check_arg $1 $2
666 KEYTOOL="${2}"
667 shift 2
668 ;;
669 -s | --openssl)
670 check_arg $1 $2
671 OPENSSL="${2}"
672 shift 2
673 ;;
674 -h | --help)
675 showhelp
676 exit 0
677 ;;
678 *)
679 showhelp
680 exit 1
681 ;;
682 esac
683 done
684 }
685
686function check_arg()
687 {
688 echo "${2}" | grep -v "^-" > /dev/null
689 if [ -z "$?" -o ! -n "$2" ]; then
690 echo "Error: $1 requires a valid argument."
691 exit 1
692 fi
693 }
694
695# The date binary is not reliable on 32bit systems for dates after 2038
696function mydate()
697 {
698 local y=$( echo $1 | cut -d" " -f4 )
699 local M=$( echo $1 | cut -d" " -f1 )
700 local d=$( echo $1 | cut -d" " -f2 )
701 local m
702
703 if [ ${d} -lt 10 ]; then d="0${d}"; fi
704
705 case $M in
706 Jan) m="01";;
707 Feb) m="02";;
708 Mar) m="03";;
709 Apr) m="04";;
710 May) m="05";;
711 Jun) m="06";;
712 Jul) m="07";;
713 Aug) m="08";;
714 Sep) m="09";;
715 Oct) m="10";;
716 Nov) m="11";;
717 Dec) m="12";;
718 esac
719
720 certdate="${y}${m}${d}"
721 }
722
723function showhelp()
724 {
725 echo "`basename ${0}` creates a valid cacerts file for use with IcedTea."
726 echo ""
727 echo " -f --cafile The path to a file containing PEM"
728 echo " formated CA certificates. May not be"
729 echo " used with -d/--cadir."
730 echo ""
731 echo " -d --cadir The path to a directory of PEM formatted"
732 echo " CA certificates. May not be used with"
733 echo " -f/--cafile."
734 echo ""
735 echo " -o --outfile The path to the output file."
736 echo ""
737 echo " -k --keytool The path to the java keytool utility."
738 echo ""
739 echo " -s --openssl The path to the openssl utility."
740 echo ""
741 echo " -h --help Show this help message and exit."
742 echo ""
743 echo ""
744 }
745
746# Initialize empty variables so that the shell does not pollute the script
747CAFILE=""
748CADIR=""
749OUTFILE=""
750OPENSSL=""
751KEYTOOL=""
752certdate=""
753date=""
754today=$( date +%Y%m%d )
755
756# Process command line arguments
757get_args ${@}
758
759# Handle common errors
760if test "${CAFILE}x" == "x" -a "${CADIR}x" == "x" ; then
761 echo "ERROR! You must provide an x509 certificate store!"
762 echo "\'$(basename ${0}) --help\' for more info."
763 echo ""
764 exit 1
765fi
766
767if test "${CAFILE}x" != "x" -a "${CADIR}x" != "x" ; then
768 echo "ERROR! You cannot provide two x509 certificate stores!"
769 echo "\'$(basename ${0}) --help\' for more info."
770 echo ""
771 exit 1
772fi
773
774if test "${KEYTOOL}x" == "x" ; then
775 echo "ERROR! You must provide a valid keytool program!"
776 echo "\'$(basename ${0}) --help\' for more info."
777 echo ""
778 exit 1
779fi
780
781if test "${OPENSSL}x" == "x" ; then
782 echo "ERROR! You must provide a valid path to openssl!"
783 echo "\'$(basename ${0}) --help\' for more info."
784 echo ""
785 exit 1
786fi
787
788if test "${OUTFILE}x" == "x" ; then
789 echo "ERROR! You must provide a valid output file!"
790 echo "\'$(basename ${0}) --help\' for more info."
791 echo ""
792 exit 1
793fi
794
795# Get on with the work
796
797# If using a CAFILE, split it into individual files in a temp directory
798if test "${CAFILE}x" != "x" ; then
799 TEMPDIR=`mktemp -d`
800 CADIR="${TEMPDIR}"
801
802 # Get a list of staring lines for each cert
803 CERTLIST=`grep -n "^-----BEGIN" "${CAFILE}" | cut -d ":" -f 1`
804
805 # Get a list of ending lines for each cert
806 ENDCERTLIST=`grep -n "^-----END" "${CAFILE}" | cut -d ":" -f 1`
807
808 # Start a loop
809 for certbegin in `echo "${CERTLIST}"` ; do
810 for certend in `echo "${ENDCERTLIST}"` ; do
811 if test "${certend}" -gt "${certbegin}"; then
812 break
813 fi
814 done
815 sed -n "${certbegin},${certend}p" "${CAFILE}" > "${CADIR}/${certbegin}.pem"
816 keyhash=`${OPENSSL} x509 -noout -in "${CADIR}/${certbegin}.pem" -hash`
817 echo "Generated PEM file with hash: ${keyhash}."
818 done
819fi
820
821# Write the output file
822for cert in `find "${CADIR}" -type f -name "*.pem" -o -name "*.crt"`
823do
824
825 # Make sure the certificate date is valid...
826 date=$( ${OPENSSL} x509 -enddate -in "${cert}" -noout | sed 's/^notAfter=//' )
827 mydate "${date}"
828 if test "${certdate}" -lt "${today}" ; then
829 echo "${cert} expired on ${certdate}! Skipping..."
830 unset date certdate
831 continue
832 fi
833 unset date certdate
834 ls "${cert}"
835 tempfile=`mktemp`
836 certbegin=`grep -n "^-----BEGIN" "${cert}" | cut -d ":" -f 1`
837 certend=`grep -n "^-----END" "${cert}" | cut -d ":" -f 1`
838 sed -n "${certbegin},${certend}p" "${cert}" > "${tempfile}"
839 echo yes | env LC_ALL=C "${KEYTOOL}" -import \
840 -alias `basename "${cert}"` \
841 -keystore "${OUTFILE}" \
842 -storepass 'changeit' \
843 -file "${tempfile}"
844 rm "${tempfile}"
845done
846
847if test "${TEMPDIR}x" != "x" ; then
848 rm -rf "${TEMPDIR}"
849fi
850exit 0</literal>
851EOF
852
853chmod -c 0755 /opt/jdk/bin/mkcacerts</userinput></screen>
854
855 <note>
856 <para>
857 Doing a very large copy/paste directly to a terminal may result in a
858 corrupted file. Copying to an editor may overcome this issue.
859 </para>
860 </note>
861
862 <para>
863 Generate the <application>OpenJDK</application> <filename>cacerts</filename>
864 file as the <systemitem class="username">root</systemitem> user:
865 </para>
866
867<screen role="root"><userinput>if [ -f /opt/jdk/jre/lib/security/cacerts ]; then
868 mv /opt/jdk/jre/lib/security/cacerts \
869 /opt/jdk/jre/lib/security/cacerts.bak
870fi &amp;&amp;
871/opt/jdk/bin/mkcacerts \
872 -d "/etc/ssl/certs/" \
873 -k "/opt/jdk/bin/keytool" \
874 -s "/usr/bin/openssl" \
875 -o "/opt/jdk/jre/lib/security/cacerts"</userinput></screen>
876
877 <para>Use the following commands to check if the
878 <filename>cacerts</filename> file has been successfully installed:</para>
879
880<screen role="root"><userinput>cd /opt/jdk
881bin/keytool -list -keystore jre/lib/security/cacerts</userinput></screen>
882
883 <para>At the prompt "Enter keystore password:", press the "Enter" key if
884 there is no keystore password defined. If the <filename>cacerts</filename>
885 file was installed correctly, you will see a list of the certificates with
886 related information for each one. If not, you need to reinstall
887 them.</para>
888
889 </sect3>
890
891 </sect2>
892
893 <sect2 role="content">
894 <title>Contents</title>
895
896 <segmentedlist>
897 <segtitle>Installed Programs</segtitle>
898 <segtitle>Installed Libraries</segtitle>
899 <segtitle>Installed Directory</segtitle>
900
901 <seglistitem>
902 <seg>appletviewer, extcheck, idlj, jar,
903 jarsigner, java, javac, javadoc, javah, javap, java-rmi.cgi,
904 jcmd, jconsole, jdb, jdeps, jhat, jinfo, jjs, jmap, jps,
905 jrunscript, jsadebugd, jstack, jstat, jstatd, keytool, mkcacerts,
906 native2ascii, orbd, pack200, policytool, rmic, rmid, rmiregistry,
907 schemagen, serialver, servertool, tnameserv, unpack200,
908 wsgen, wsimport, and xjc</seg>
909 <seg>/opt/OpenJDK-&openjdk-version;/lib/*, and
910 /opt/OpenJDK-&openjdk-version;/jre/lib/*</seg>
911 <seg>/opt/OpenJDK-&openjdk-version;</seg>
912 </seglistitem>
913 </segmentedlist>
914
915 <variablelist>
916 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
917 <?dbfo list-presentation="list"?>
918 <?dbhtml list-presentation="table"?>
919
920 <varlistentry id="appletviewer">
921 <term><command>appletviewer</command></term>
922 <listitem>
923 <para>allows to run applets outside of a web browser.</para>
924 <indexterm zone="openjdk appletviewer">
925 <primary sortas="b-appletviewer">appletviewer</primary>
926 </indexterm>
927 </listitem>
928 </varlistentry>
929
930 <varlistentry id="extcheck">
931 <term><command>extcheck</command></term>
932 <listitem>
933 <para>checks a specified jar file for title and version conflicts
934 with any extensions installed in the
935 <application>OpenJDK</application> software.</para>
936 <indexterm zone="openjdk extcheck">
937 <primary sortas="b-extcheck">extcheck</primary>
938 </indexterm>
939 </listitem>
940 </varlistentry>
941
942 <varlistentry id="idlj">
943 <term><command>idlj</command></term>
944 <listitem>
945 <para>generates Java bindings from a given IDL file.</para>
946 <indexterm zone="openjdk idlj">
947 <primary sortas="b-idlj">idlj</primary>
948 </indexterm>
949 </listitem>
950 </varlistentry>
951
952 <varlistentry id="jar">
953 <term><command>jar</command></term>
954 <listitem>
955 <para>combines multiple files into a single jar archive.</para>
956 <indexterm zone="openjdk jar">
957 <primary sortas="b-jar">jar</primary>
958 </indexterm>
959 </listitem>
960 </varlistentry>
961
962 <varlistentry id="jarsigner">
963 <term><command>jarsigner</command></term>
964 <listitem>
965 <para>signs jar files and verifies the signatures and integrity
966 of a signed jar file.</para>
967 <indexterm zone="openjdk jarsigner">
968 <primary sortas="b-jarsigner">jarsigner</primary>
969 </indexterm>
970 </listitem>
971 </varlistentry>
972
973 <varlistentry id="java-prog">
974 <term><command>java</command></term>
975 <listitem>
976 <para>launches a Java application by starting a Java runtime
977 environment, loading a specified class and invoking its main
978 method.</para>
979 <indexterm zone="openjdk java-prog">
980 <primary sortas="b-java-prog">java</primary>
981 </indexterm>
982 </listitem>
983 </varlistentry>
984
985 <varlistentry id="javac">
986 <term><command>javac</command></term>
987 <listitem>
988 <para>reads class and interface definitions, written in the
989 Java programming language, and compiles them into bytecode
990 class files.</para>
991 <indexterm zone="openjdk javac">
992 <primary sortas="b-javac">javac</primary>
993 </indexterm>
994 </listitem>
995 </varlistentry>
996
997 <varlistentry id="javadoc">
998 <term><command>javadoc</command></term>
999 <listitem>
1000 <para>parses the declarations and documentation comments in a
1001 set of Java source files and produces a corresponding set of
1002 HTML pages describing the classes, interfaces, constructors,
1003 methods, and fields.</para>
1004 <indexterm zone="openjdk javadoc">
1005 <primary sortas="b-javadoc">javadoc</primary>
1006 </indexterm>
1007 </listitem>
1008 </varlistentry>
1009
1010 <varlistentry id="javah">
1011 <term><command>javah</command></term>
1012 <listitem>
1013 <para>generates C header and source files
1014 that are needed to implement native methods.</para>
1015 <indexterm zone="openjdk javah">
1016 <primary sortas="b-javah">javah</primary>
1017 </indexterm>
1018 </listitem>
1019 </varlistentry>
1020
1021 <varlistentry id="javap">
1022 <term><command>javap</command></term>
1023 <listitem>
1024 <para>disassembles a Java class file.</para>
1025 <indexterm zone="openjdk javap">
1026 <primary sortas="b-javap">javap</primary>
1027 </indexterm>
1028 </listitem>
1029 </varlistentry>
1030
1031 <varlistentry id="java-rmi.cgi">
1032 <term><command>java-rmi.cgi</command></term>
1033 <listitem>
1034 <para>is the Java RMI client.</para>
1035 <indexterm zone="openjdk java-rmi.cgi">
1036 <primary sortas="b-java-rmi.cgi">java-rmi.cgi</primary>
1037 </indexterm>
1038 </listitem>
1039 </varlistentry>
1040
1041 <varlistentry id="jcmd">
1042 <term><command>jcmd</command></term>
1043 <listitem>
1044 <para>is a utility to send diagnostic command requests to a running
1045 Java Virtual Machine.</para>
1046 <indexterm zone="openjdk jcmd">
1047 <primary sortas="b-jcmd">jcmd</primary>
1048 </indexterm>
1049 </listitem>
1050 </varlistentry>
1051
1052 <varlistentry id="jconsole">
1053 <term><command>jconsole</command></term>
1054 <listitem>
1055 <para>is a graphical console tool to monitor and manage both
1056 local and remote Java applications and virtual machines.</para>
1057 <indexterm zone="openjdk jconsole">
1058 <primary sortas="b-jconsole">jconsole</primary>
1059 </indexterm>
1060 </listitem>
1061 </varlistentry>
1062
1063 <varlistentry id="jdb">
1064 <term><command>jdb</command></term>
1065 <listitem>
1066 <para>is a simple command-line debugger for Java classes.</para>
1067 <indexterm zone="openjdk jdb">
1068 <primary sortas="b-jdb">jdb</primary>
1069 </indexterm>
1070 </listitem>
1071 </varlistentry>
1072
1073 <varlistentry id="jdeps">
1074 <term><command>jdeps</command></term>
1075 <listitem>
1076 <para>shows the package-level or class-level dependencies of
1077 Java class files.</para>
1078 <indexterm zone="openjdk jdeps">
1079 <primary sortas="b-jdeps">jdeps</primary>
1080 </indexterm>
1081 </listitem>
1082 </varlistentry>
1083
1084 <varlistentry id="jhat">
1085 <term><command>jhat</command></term>
1086 <listitem>
1087 <para>parses a java heap dump file and allows viewing it
1088 in a web browser.</para>
1089 <indexterm zone="openjdk jhat">
1090 <primary sortas="b-jhat">jhat</primary>
1091 </indexterm>
1092 </listitem>
1093 </varlistentry>
1094
1095 <varlistentry id="jinfo">
1096 <term><command>jinfo</command></term>
1097 <listitem>
1098 <para>prints Java configuration information for a given Java
1099 process, core file, or a remote debug server.</para>
1100 <indexterm zone="openjdk jinfo">
1101 <primary sortas="b-jinfo">jinfo</primary>
1102 </indexterm>
1103 </listitem>
1104 </varlistentry>
1105
1106 <varlistentry id="jjs">
1107 <term><command>jjs</command></term>
1108 <listitem>
1109 <para>is a command-line tool used to invoke the Nashorn engine. It
1110 can be used to interpret one or several script files, or to run
1111 an interactive shell.</para>
1112 <indexterm zone="openjdk jjs">
1113 <primary sortas="b-jjs">jjs</primary>
1114 </indexterm>
1115 </listitem>
1116 </varlistentry>
1117
1118 <varlistentry id="jmap">
1119 <term><command>jmap</command></term>
1120 <listitem>
1121 <para>prints shared object memory maps or heap memory details
1122 of a given process, core file, or a remote debug server.</para>
1123 <indexterm zone="openjdk jmap">
1124 <primary sortas="b-jmap">jmap</primary>
1125 </indexterm>
1126 </listitem>
1127 </varlistentry>
1128
1129 <varlistentry id="jps">
1130 <term><command>jps</command></term>
1131 <listitem>
1132 <para>lists the instrumented JVMs on the target system.</para>
1133 <indexterm zone="openjdk jps">
1134 <primary sortas="b-jps">jps</primary>
1135 </indexterm>
1136 </listitem>
1137 </varlistentry>
1138
1139 <varlistentry id="jrunscript">
1140 <term><command>jrunscript</command></term>
1141 <listitem>
1142 <para>is a command line script shell.</para>
1143 <indexterm zone="openjdk jrunscript">
1144 <primary sortas="b-jrunscript">jrunscript</primary>
1145 </indexterm>
1146 </listitem>
1147 </varlistentry>
1148
1149 <varlistentry id="jsadebugd">
1150 <term><command>jsadebugd</command></term>
1151 <listitem>
1152 <para>attaches to a Java process or core file and acts as a
1153 debug server.</para>
1154 <indexterm zone="openjdk jsadebugd">
1155 <primary sortas="b-jsadebugd">jsadebugd</primary>
1156 </indexterm>
1157 </listitem>
1158 </varlistentry>
1159
1160 <varlistentry id="jstack">
1161 <term><command>jstack</command></term>
1162 <listitem>
1163 <para>prints Java stack traces of Java threads for a given
1164 Java process, core file, or a remote debug server.</para>
1165 <indexterm zone="openjdk jstack">
1166 <primary sortas="b-jstack">jstack</primary>
1167 </indexterm>
1168 </listitem>
1169 </varlistentry>
1170
1171 <varlistentry id="jstat">
1172 <term><command>jstat</command></term>
1173 <listitem>
1174 <para>displays performance statistics for an instrumented JVM.</para>
1175 <indexterm zone="openjdk jstat">
1176 <primary sortas="b-jstat">jstat</primary>
1177 </indexterm>
1178 </listitem>
1179 </varlistentry>
1180
1181 <varlistentry id="jstatd">
1182 <term><command>jstatd</command></term>
1183 <listitem>
1184 <para>is an RMI server application that monitors for the creation
1185 and termination of instrumented JVMs.</para>
1186 <indexterm zone="openjdk jstatd">
1187 <primary sortas="b-jstatd">jstatd</primary>
1188 </indexterm>
1189 </listitem>
1190 </varlistentry>
1191
1192 <varlistentry id="keytool">
1193 <term><command>keytool</command></term>
1194 <listitem>
1195 <para>is a key and certificate management utility.</para>
1196 <indexterm zone="openjdk keytool">
1197 <primary sortas="b-keytool">keytool</primary>
1198 </indexterm>
1199 </listitem>
1200 </varlistentry>
1201
1202 <varlistentry id="mkcacerts">
1203 <term><command>mkcacerts</command></term>
1204 <listitem>
1205 <para> is a simple script to extract x509 certificates and create
1206 a JRE cacerts file using <command>keytool</command>.</para>
1207 <indexterm zone="openjdk mkcacerts">
1208 <primary sortas="b-mkcacerts">mkcacerts</primary>
1209 </indexterm>
1210 </listitem>
1211 </varlistentry>
1212
1213 <varlistentry id="native2ascii">
1214 <term><command>native2ascii</command></term>
1215 <listitem>
1216 <para> converts files that contain non-supported character encoding
1217 into files containing Latin-1 or Unicode-encoded characters.</para>
1218 <indexterm zone="openjdk native2ascii">
1219 <primary sortas="b-native2ascii">native2ascii</primary>
1220 </indexterm>
1221 </listitem>
1222 </varlistentry>
1223
1224 <varlistentry id="orbd">
1225 <term><command>orbd</command></term>
1226 <listitem>
1227 <para>is used to enable clients to transparently locate and invoke
1228 persistent objects on servers in the CORBA environment.</para>
1229 <indexterm zone="openjdk orbd">
1230 <primary sortas="b-orbd">orbd</primary>
1231 </indexterm>
1232 </listitem>
1233 </varlistentry>
1234
1235 <varlistentry id="pack200">
1236 <term><command>pack200</command></term>
1237 <listitem>
1238 <para>is a Java application that transforms a jar file into a
1239 compressed pack200 file using the Java gzip compressor.</para>
1240 <indexterm zone="openjdk pack200">
1241 <primary sortas="b-pack200">pack200</primary>
1242 </indexterm>
1243 </listitem>
1244 </varlistentry>
1245
1246 <varlistentry id="policytool">
1247 <term><command>policytool</command></term>
1248 <listitem>
1249 <para>creates and manages a policy file graphically.</para>
1250 <indexterm zone="openjdk policytool">
1251 <primary sortas="b-policytool">policytool</primary>
1252 </indexterm>
1253 </listitem>
1254 </varlistentry>
1255
1256 <varlistentry id="rmic">
1257 <term><command>rmic</command></term>
1258 <listitem>
1259 <para>generates stub and skeleton class files for remote objects
1260 from the names of compiled Java classes that contain remote
1261 object implementations.</para>
1262 <indexterm zone="openjdk rmic">
1263 <primary sortas="b-rmic">rmic</primary>
1264 </indexterm>
1265 </listitem>
1266 </varlistentry>
1267
1268 <varlistentry id="rmid">
1269 <term><command>rmid</command></term>
1270 <listitem>
1271 <para>starts the activation system daemon.</para>
1272 <indexterm zone="openjdk rmid">
1273 <primary sortas="b-rmid">rmid</primary>
1274 </indexterm>
1275 </listitem>
1276 </varlistentry>
1277
1278 <varlistentry id="rmiregistry">
1279 <term><command>rmiregistry</command></term>
1280 <listitem>
1281 <para>creates and starts a remote object registry on the specified
1282 port on the current host.</para>
1283 <indexterm zone="openjdk rmiregistry">
1284 <primary sortas="b-rmiregistry">rmiregistry</primary>
1285 </indexterm>
1286 </listitem>
1287 </varlistentry>
1288
1289 <varlistentry id="schemagen">
1290 <term><command>schemagen</command></term>
1291 <listitem>
1292 <para>is a Java XML binding schema generator.</para>
1293 <indexterm zone="openjdk schemagen">
1294 <primary sortas="b-schemagen">schemagen</primary>
1295 </indexterm>
1296 </listitem>
1297 </varlistentry>
1298
1299 <varlistentry id="serialver">
1300 <term><command>serialver</command></term>
1301 <listitem>
1302 <para>returns the serialVersionUID for one or more classes in a
1303 form suitable for copying into an evolving class.</para>
1304 <indexterm zone="openjdk serialver">
1305 <primary sortas="b-serialver">serialver</primary>
1306 </indexterm>
1307 </listitem>
1308 </varlistentry>
1309
1310 <varlistentry id="servertool">
1311 <term><command>servertool</command></term>
1312 <listitem>
1313 <para>provides an ease-of-use interface for application programmers
1314 to register, unregister, startup and shutdown a server.</para>
1315 <indexterm zone="openjdk servertool">
1316 <primary sortas="b-servertool">servertool</primary>
1317 </indexterm>
1318 </listitem>
1319 </varlistentry>
1320
1321 <varlistentry id="tnameserv">
1322 <term><command>tnameserv</command></term>
1323 <listitem>
1324 <para>starts the Java IDL name server.</para>
1325 <indexterm zone="openjdk tnameserv">
1326 <primary sortas="b-tnameserv">tnameserv</primary>
1327 </indexterm>
1328 </listitem>
1329 </varlistentry>
1330
1331 <varlistentry id="unpack200">
1332 <term><command>unpack200</command></term>
1333 <listitem>
1334 <para>is a native implementation that transforms a packed file
1335 produced by <application>pack200</application> into a jar
1336 file.</para>
1337 <indexterm zone="openjdk unpack200">
1338 <primary sortas="b-unpack200">unpack200</primary>
1339 </indexterm>
1340 </listitem>
1341 </varlistentry>
1342
1343 <varlistentry id="wsgen">
1344 <term><command>wsgen</command></term>
1345 <listitem>
1346 <para>generates JAX-WS portable artifacts used in JAX-WS
1347 web services.</para>
1348 <indexterm zone="openjdk wsgen">
1349 <primary sortas="b-wsgen">wsgen</primary>
1350 </indexterm>
1351 </listitem>
1352 </varlistentry>
1353
1354 <varlistentry id="wsimport">
1355 <term><command>wsimport</command></term>
1356 <listitem>
1357 <para>generates JAX-WS portable artifacts.</para>
1358 <indexterm zone="openjdk wsimport">
1359 <primary sortas="b-wsimport">wsimport</primary>
1360 </indexterm>
1361 </listitem>
1362 </varlistentry>
1363
1364 <varlistentry id="xjc">
1365 <term><command>xjc</command></term>
1366 <listitem>
1367 <para>is a Java XML binding compiler.</para>
1368 <indexterm zone="openjdk xjc">
1369 <primary sortas="b-xjc">xjc</primary>
1370 </indexterm>
1371 </listitem>
1372 </varlistentry>
1373
1374 </variablelist>
1375
1376 </sect2>
1377
1378</sect1>
Note: See TracBrowser for help on using the repository browser.