source: general/prog/openjdk.xml@ 57945e0

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 57945e0 was 6675fcd, checked in by Pierre Labastie <pieere@…>, 9 years ago

Fix tests for OpenJDK, due to the
new version of jtreg

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

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