/[gentoo]/xml/htdocs/doc/en/java.xml
Gentoo

Contents of /xml/htdocs/doc/en/java.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.28 - (hide annotations) (download) (as text)
Tue Aug 8 09:51:12 2006 UTC (8 years, 4 months ago) by rane
Branch: MAIN
Changes since 1.27: +133 -21 lines
File MIME type: application/xml
#143152, updated by java team

1 neysx 1.11 <?xml version="1.0" encoding="UTF-8"?>
2 rane 1.28 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/java.xml,v 1.27 2006/07/25 08:13:47 rane Exp $ -->
3 swift 1.8 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 zhen 1.4
5 neysx 1.11 <guide link="/doc/en/java.xml">
6     <title>Gentoo Java Guide</title>
7    
8 nightmorph 1.23 <author title="Author">
9 rane 1.28 <mail link="nichoj@gentoo.org">Joshua Nichols</mail>
10 neysx 1.11 </author>
11 nightmorph 1.23 <author title="Author">
12 rane 1.28 <mail link="karltk@gentoo.org">Karl Trygve Kalleberg</mail>
13 neysx 1.11 </author>
14 swift 1.13 <author title="Editor">
15 nightmorph 1.23 <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
16 swift 1.13 </author>
17 neysx 1.11
18     <abstract>
19 nightmorph 1.23 This guide will introduce you to Java and explain how to use Java with Gentoo
20     Linux.
21 neysx 1.11 </abstract>
22    
23 nightmorph 1.23 <!-- The content of this document is licensed under the CC-BY-SA license -->
24     <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
25 neysx 1.11 <license/>
26    
27 rane 1.28 <version>0.6</version>
28     <date>2006-08-07</date>
29 neysx 1.11
30     <chapter>
31 swift 1.13 <title>What is Java?</title>
32 neysx 1.11 <section>
33     <title>Overview</title>
34     <body>
35    
36     <p>
37 nightmorph 1.23 Java is a programming language developed by engineers of Sun Microsystems. The
38     language is object-oriented and designed to run on multiple platforms without
39     the need of recompiling code for each platform. Although Java can be compiled
40     as a native program, much of Java's popularity can be attributed to its
41     portability, along with other features such as garbage collection. To make
42     platform independence possible the Java compiler compiles the Java code to an
43     intermediate representation called "Java bytecode" that runs on a JRE (Java
44     Runtime Environment) and not directly on the operating system.
45 swift 1.13 </p>
46    
47     <p>
48 nightmorph 1.23 In order to run Java bytecode, one needs to have a JRE (Java Runtime
49     Environment) installed. A JRE provides core libraries, a platform dependent
50     Java Virtual Machine, plug-ins for browsers, among other things. A JDK (Java
51     Development Kit) adds programming tools, such as a bytecode compiler and a
52     debugger.
53 swift 1.13 </p>
54    
55     </body>
56     </section>
57     </chapter>
58    
59     <chapter>
60 rane 1.28 <title>New Java System</title>
61     <section>
62     <body>
63    
64     <p>
65     The way Java is handled on Gentoo has recently seen many changes and
66     improvements. This has only happened very recently, and as a result, all the
67     packages related to it are marked with testing keywords, ie ~x86. This
68     document assumes you are using the new system.
69     </p>
70    
71     </body>
72     </section>
73     <section>
74     <title>Keywords</title>
75     <body>
76    
77     <p>
78     If you are using the stable tree, i.e. x86, ppc, or amd64 as opposed to ~x86,
79     ~ppc, or ~amd64, you will need to add some entries to your
80     <path>/etc/portage/package.keywords</path>:
81     </p>
82    
83     <pre caption="package.keywords">
84     # Core Gentoo/Java Packages
85     dev-java/ant-core
86     dev-java/ant-tasks
87     dev-java/ant
88     dev-java/java-config
89     dev-java/java-config-wrapper
90     dev-java/javatoolkit
91     # JDKs
92     =dev-java/sun-jdk-1.4*
93     =dev-java/sun-jdk-1.5*
94     =dev-java/ibm-jdk-bin-1.4*
95     =dev-java/ibm-jdk-bin-1.5*
96     =dev-java/jrockit-jdk-bin-1.4*
97     =dev-java/jrockit-jdk-bin-1.5*
98     =dev-java/blackdown-jdk-1.4*
99     dev-java/kaffe
100     # JREs
101     =dev-java/sun-jre-bin-1.4*
102     =dev-java/sun-jre-bin-1.5*
103     =dev-java/ibm-jre-bin-1.4*
104     =dev-java/blackdown-jre-1.4*
105     # Virtuals
106     virtual/jdk
107     virtual/jre
108     # Compilers
109     dev-java/eclipse-ecj
110     dev-java/jikes
111     # Documentation
112     dev-java/java-sdk-docs
113     # Misc packages that have been updated to generation-2,
114     # where the generation-1 won't build and/or run properly
115     dev-java/lucene
116     # These have optional Java support, but need ~arch to function properly
117     # with generation-2
118     dev-util/subversion
119     sys-libs/db
120     </pre>
121    
122     <impo>
123     It is crucial that you keyword ALL packages related to the new Java system,
124     otherwise you will have problems in the later steps of this guide.
125     </impo>
126    
127     <impo>
128     It can't be emphasized enough that you have to have ALL the packages related
129     to the new Java system keyworded for it to function properly.
130     </impo>
131    
132     </body>
133     </section>
134     <section>
135     <title>Existing installs</title>
136     <body>
137    
138     <p>
139     For existing installs, regardless of if you have installed anything Java
140     before, make sure you have followed the <uri
141     link="/proj/en/java/java-upgrade.xml">Java Upgrade Guide</uri>.
142     </p>
143    
144     </body>
145     </section>
146     <section>
147     <title>New installs</title>
148     <body>
149    
150     <p>
151     New installs should require no further preparation.
152     </p>
153    
154     </body>
155     </section>
156     </chapter>
157    
158     <chapter>
159     <title>Installing a Virtual Machine</title>
160 swift 1.13 <section>
161     <title>The choices</title>
162     <body>
163    
164     <p>
165 rane 1.28 Gentoo provides numerous Runtime Environments (JREs) and Development Kits
166     (JDKs). Among the current choices, we have:
167 swift 1.13 </p>
168    
169 nightmorph 1.23 <table>
170     <tr>
171     <th>Vendor</th>
172     <th>JDK</th>
173     <th>JRE</th>
174     </tr>
175     <tr>
176     <ti>The Blackdown Java Kit</ti>
177 rane 1.27 <ti>dev-java/blackdown-jdk</ti>
178 nightmorph 1.23 <ti>dev-java/blackdown-jre</ti>
179     </tr>
180     <tr>
181     <ti>Sun's Java Kit</ti>
182     <ti>dev-java/sun-jdk</ti>
183     <ti>dev-java/sun-jre-bin</ti>
184     </tr>
185     <tr>
186     <ti>The IBM Java Kit</ti>
187     <ti>dev-java/ibm-jdk-bin</ti>
188     <ti>dev-java/ibm-jre-bin</ti>
189     </tr>
190     <tr>
191     <ti>The Compaq Java Kit for Alpha/Linux/GNU</ti>
192     <ti>dev-java/compaq-jdk</ti>
193     <ti>dev-java/compaq-jre</ti>
194     </tr>
195     <tr>
196     <ti>BEA WebLogic's J2SE Development Kit</ti>
197     <ti>dev-java/jrockit-jdk-bin</ti>
198     </tr>
199     </table>
200    
201     <!--
202 rane 1.26 TODO: list free implementations?
203     note about not drop-in replacements
204 nightmorph 1.23 kaffe/sablevm/gcj/jamvm
205     -->
206    
207     <p>
208     The default is Blackdown for both the JRE and the JDK, as it is freely ("free
209     as in beer") available without any registration fuss.
210     </p>
211 swift 1.13
212     <p>
213 rane 1.28 The default for Java 1.4 is the Blackdown JRE/JDK pair, as it is freely
214     ("free as in beer") available without any registration fuss.
215 neysx 1.11 </p>
216    
217     <p>
218 rane 1.28 JREs and JDKs from Sun, IBM, and BEA are generally faster, but getting them
219     is a bit more work, as you are required to read and accept their license before
220     downloading (IBM additionally requires you to register).
221 neysx 1.11 </p>
222    
223 nightmorph 1.23 </body>
224     </section>
225     <section>
226     <title>Installing a JRE/JDKs</title>
227     <body>
228    
229 neysx 1.11 <p>
230 nightmorph 1.23 To install your profile's default JDK, you can run <c>emerge virtual/jdk</c>.
231     Or to install your profile's default JRE, you can <c>emerge virtual/jre</c>.
232 neysx 1.11 </p>
233    
234 rane 1.28 <p>
235     In recent events, Sun has relicensed their JDK and JRE under a more Linux
236     distro friendly license. As a result, Sun releases Java 1.5 and onwards are
237     freely downloadable, without any further hassle.
238     </p>
239    
240 nightmorph 1.23 <note>
241     A JDK also includes a JRE, so if you install a JDK you shouldn't have to also
242     have to install a JRE.
243     </note>
244    
245 neysx 1.11 </body>
246     </section>
247     <section>
248 rane 1.28 <title>Installing fetch-restricted virtual machines</title>
249 neysx 1.11 <body>
250    
251     <p>
252 rane 1.28 As already mentioned, some of the JDKs and JREs require you to jump through a
253     few hoops before installing. Simply emerge the packages as you normally would.
254     The ebuilds will then instruct you where to go and what to download.
255 neysx 1.11 </p>
256    
257     <p>
258     You should download the indicated file(s) into
259 nightmorph 1.23 <path>/usr/portage/distfiles</path>. Once there, you can rerun the emerge
260     command, at which point the JRE/JDK will be begin to install.
261 neysx 1.11 </p>
262    
263     </body>
264     </section>
265     </chapter>
266    
267     <chapter>
268 rane 1.28 <title>Configuring your virtual machine</title>
269 neysx 1.11 <section>
270     <title>Overview</title>
271     <body>
272    
273     <p>
274 nightmorph 1.23 Gentoo has the ability to have multiple JDKs and JREs installed without causing
275     conflicts.
276 neysx 1.11 </p>
277    
278     <p>
279 nightmorph 1.23 Using the <c>java-config</c> tool, you can set the system-wide default
280     (provided you have root access). Users can also use <c>java-config</c> to set
281     up their own personal default.
282 neysx 1.11 </p>
283    
284 nightmorph 1.23 <note>
285     You can also use <e>eselect</e> to change the system and user vm. See
286 nightmorph 1.24 <c>eselect java-vm help</c>.
287 nightmorph 1.23 </note>
288    
289 neysx 1.11 </body>
290     </section>
291     <section>
292 rane 1.28 <title>Setting a default virtual machine</title>
293 neysx 1.11 <body>
294    
295     <p>
296 nightmorph 1.23 Running the command <c>java-config --list-available-vms</c> will give you a
297     list of all JREs and JDKs installed on your system. Here is an example of
298     output:
299 neysx 1.11 </p>
300    
301     <pre caption="Listing available VMs">
302 neysx 1.12 # <i>java-config --list-available-vms</i>
303 nightmorph 1.23 1) Blackdown JDK 1.3.1 [blackdown-jdk-1.3] (/etc/env.d/java/20blackdown-jdk-1.3)
304     2) Blackdown JDK 1.4.2.02 [blackdown-jdk-1.4] (/etc/env.d/java/20blackdown-jdk-1.4)
305     3) Blackdown JRE 1.4.2.02 [blackdown-jre-1.4] (/etc/env.d/java/20blackdown-jre-1.4)
306     4) IBM JDK 1.4.2 [ibm-jdk-bin-1.4] (/etc/env.d/java/20ibm-jdk-bin-1.4)
307     5) IBM JRE 1.4.2 [ibm-jre-bin-1.4] (/etc/env.d/java/20ibm-jre-bin-1.4)
308     6) WebLogic JRockit 1.4.2.05 [jrockit-jdk-bin-1.4] (/etc/env.d/java/20jrockit-jdk-bin-1.4)
309     7) WebLogic JRockit 1.5.0.03 [jrockit-jdk-bin-1.5] (/etc/env.d/java/20jrockit-jdk-bin-1.5)
310     8) Sun JDK 1.3.1.13 [sun-jdk-1.3] (/etc/env.d/java/20sun-jdk-1.3)
311     9) Sun JDK 1.4.2.09 [sun-jdk-1.4] (/etc/env.d/java/20sun-jdk-1.4)
312     *) Sun JDK 1.5.0.04 [sun-jdk-1.5] (/etc/env.d/java/20sun-jdk-1.5)
313     11) Sun JRE 1.4.2.09 [sun-jre-bin-1.4] (/etc/env.d/java/20sun-jre-bin-1.4)
314     12) Sun JRE 1.5.0.04 [sun-jre-bin-1.5] (/etc/env.d/java/20sun-jre-bin-1.5)
315 neysx 1.11 </pre>
316    
317     <p>
318 nightmorph 1.23 The <e>*</e> indicates this is the current active vm (system-vm or user-vm when
319     set). The name in the brackets (<e>[]</e>) is the handle or ID for that
320     particular VM. You use the handle or the number to <c>java-config
321     --set-system-vm</c>. Here is an example of how to set the system VM.
322 neysx 1.11 </p>
323 zhen 1.4
324 neysx 1.11 <pre caption="Setting the System VM">
325 nightmorph 1.23 <comment>(By handle (preferred))</comment>
326     # <i>java-config --set-system-vm blackdown-jdk-1.4</i>
327     <comment>(By number)</comment>
328     # <i>java-config --set-system-vm 2</i>
329 neysx 1.11 </pre>
330 drobbins 1.1
331 nightmorph 1.23 <p>
332     As a regular user, you can use <c>java-config --set-user-vm</c>.
333     </p>
334    
335 neysx 1.11 <note>
336 nightmorph 1.23 You no longer have to <c>source</c> the profile for updates to the user/system
337     VM take place.
338 neysx 1.11 </note>
339    
340 nightmorph 1.23 </body>
341     </section>
342     <section id="preferred-vm">
343     <title>Preferred VM</title>
344     <body>
345    
346     <p>
347     While merging Java packages, the VM can and will be switched as necessary.
348     </p>
349    
350     <p>
351     Because of the wide variety of available VMs, we do not have the resources to
352     test and verify every package works on all of them. So to ensure that every
353     packages merges smoothly, we have defined a list of <e>default/supported
354     VMs</e> per arch. You can find them in
355     <path>/usr/share/java-config/config/jdk-defaults.conf</path>. When you are
356     merging a Java package, and it detects one of the VM in that file is installed,
357     it will automatically use that VM, instead of the system-vm.
358     </p>
359    
360 neysx 1.11 <p>
361 nightmorph 1.23 The merge time VM switching is also needed when, for example, your system-vm is
362     set a 1.4 VM and the package you are merging requires a 1.5 VM. While merging
363     it will use the preferred 1.5 VM, leaving your system-vm choice intact.
364 neysx 1.11 </p>
365 drobbins 1.1
366 nightmorph 1.23 <p>
367     Of course, Gentoo is all about choice, so you can override these defaults in
368     <path>/etc/java-config-2/build/jdk.conf</path> and have complete control over
369     which VM will get used. Some examples:
370     </p>
371    
372     <pre caption="Example /etc/java-config-2/build/jdk.conf">
373     <comment>(I always want it to use a sun-jdk, ie sun-jdk-1.4 for 1.4, sun-jdk-1.5 for 1.5, etc)</comment>
374     *=sun-jdk
375 neysx 1.11 </pre>
376 drobbins 1.1
377 nightmorph 1.23 <pre caption="Example /etc/java-config-2/build/jdk.conf">
378     <comment>(Always use sun-jdk-1.5 wherever possible, except for when a 1.4 or 1.3 VM is explicitly required)</comment>
379     *=sun-jdk-1.5
380     </pre>
381    
382     <pre caption="Example /etc/java-config-2/build/jdk.conf">
383     <comment># For 1.3 I prefer sun-jdk 1.4 but when it is not available, use ibm-jdk-bin,
384     # For 1.4, use blackdown-jdk, and for 1.5, use sun-jdk </comment>
385     1.3=sun-jdk-1.4 ibm-jdk-bin
386     1.4=blackdown-jdk
387     1.5=sun-jdk
388     </pre>
389    
390     <warn>
391     You do not have to edit this file. If you change these options to use a
392     unsupported VM, things could possibly break. Bugs reported with a unsupported
393 rane 1.26 VM won't be prioritized as much as bugs present within supported VMs.
394 nightmorph 1.23 </warn>
395    
396     </body>
397     </section>
398     </chapter>
399    
400     <chapter>
401     <title>Compilers</title>
402     <section>
403     <body>
404    
405 neysx 1.11 <p>
406 nightmorph 1.23 The standard Java compiler used for building is javac, which comes with each
407     JDK. In addition to configuring the VM used at build time, it is also possible
408     configure which compiler is used. Essentially, you define a list your
409     preference for which compiler to use in
410     <path>/etc/java-config-2/build/compilers.conf</path>.
411 neysx 1.11 </p>
412    
413 nightmorph 1.23 <pre caption="/etc/java-config-2/build/compilers.conf">
414     # If the ebuild supports it
415     # it will check the COMPILERS var front to back and
416     # use the first compiler that is installed
417    
418     COMPILERS="ecj-3.1 jikes javac"
419     </pre>
420    
421 neysx 1.11 <p>
422 nightmorph 1.23 Some compilers don't support all possible -target and -source arguments.
423     Therefore, each compiler in the list is checked to see if it can support the
424     desired -source/-target. javac will work in all cases, so if no other suitable
425     compiler is found, it will be used instead.
426 neysx 1.11 </p>
427    
428 nightmorph 1.23 <p>
429     More details about each compiler are provided below:
430     </p>
431    
432     <table>
433     <tr>
434     <th>Name</th>
435     <th>Handle</th>
436     <th>Package</th>
437     <th>Description</th>
438     </tr>
439     <tr>
440     <ti>javac</ti>
441     <ti>javac</ti>
442     <ti>N/A</ti>
443     <ti>
444     This is the default compiler that will be used, and comes with each JDK.
445     </ti>
446     </tr>
447     <tr>
448     <ti>jikes</ti>
449     <ti>jikes</ti>
450     <ti>dev-java/jikes</ti>
451     <ti>
452     Jikes was originally developed by IBM. Anecdotally, it is generally quicker
453     than javac. Note however, that it is more pedantic, and will fail under a
454     few circumstances where javac has no issue. It also does not support Java
455     1.5 syntax yet.
456     </ti>
457     </tr>
458     <tr>
459     <ti>Eclipse Compiler for Java</ti>
460     <ti>ecj-3.1</ti>
461     <ti>=dev-java/eclipse-ecj-3.1*</ti>
462     <ti>
463     ECJ is the compiler used by the Eclipse software development kit. It is
464     very full featured, and is pretty fast. It does support Java 1.5 syntax.
465     </ti>
466     </tr>
467     </table>
468    
469     </body>
470     </section>
471     </chapter>
472    
473     <chapter>
474     <title>Setting a default CLASSPATH</title>
475     <section>
476     <body>
477    
478     <warn>
479     The options explained in this section should be considered deprecated and will
480 rane 1.26 most likely be removed in the future. We strongly recommend against using
481 nightmorph 1.23 these, because your Java projects or application should ideally manage their
482     own classpaths. If you choose to specify a default CLASSPATH, some applications
483     may behave unexpectedly, because classes they weren't expecting would be on the
484     classpath.
485     </warn>
486    
487     <p>
488     <c>java-config</c> can also be used to set a system-wide default CLASSPATH, as
489     well a user-specific default CLASSPATH.
490     </p>
491    
492     <p>
493     First, you will want to list available Java libraries installed on your system
494     that might want to be put in your CLASSPATH. Here is an example of output:
495     </p>
496    
497     <pre caption="Listing classes">
498     # <i>java-config --list-available-packages</i>
499     [xerces-2] The next generation of high performance, fully compliant XML parsers in the Apache Xerces family (/usr/share/xerces-2/package.env)
500     [junit] Simple framework to write repeatable tests (/usr/share/junit/package.env)
501     [bsh] BeanShell: A small embeddable Java source interpreter (/usr/share/bsh/package.env)
502     [bcel] The Byte Code Engineering Library: analyze, create, manipulate Java class files (/usr/share/bcel/package.env)
503     [log4j] A low-overhead robust logging package for Java (/usr/share/log4j/package.env)
504     ...
505     </pre>
506    
507     <p>
508     Again, the names in brackets (<e>[]</e>) are the IDs that you have to pass to
509     <c>java-config --set-system-classpath</c>. Here is an example:
510     </p>
511    
512     <pre caption="Setting classpaths">
513     # <i>java-config --set-system-classpath log4j,xerces-2</i>
514     </pre>
515    
516     <note>
517     The current directory (<path>.</path>) will not be part of the system
518     classpath, as that should be added in your system's login profile.
519     </note>
520    
521     <p>
522 rane 1.26 You will have to update your environment by logging out, then in again or
523     sourcing <path>/etc/profile</path>.
524 nightmorph 1.23 </p>
525    
526     <p>
527     For users, <c>java-config --set-user-classpath</c> will create
528     <path>~/.gentoo/java-env-classpath</path>, which you should then source from
529     your shell's profile.
530     </p>
531    
532     <pre caption="Sourcing user specific classpath">
533     <i>if [[ -f "${HOME}/.gentoo/java-env-classpath" ]]; then
534     source ${HOME}/.gentoo/java-env-classpath
535     fi</i>
536     </pre>
537    
538     <p>
539     If you really want a system wide or user default classpath you can add
540 rane 1.25 something like the following to your shell's profile. But we would advise
541 nightmorph 1.23 against it.
542     </p>
543    
544     <pre caption="Setting classpath">
545     # <i>export CLASSPATH="${CLASSPATH}:$(java-config --classpath log4j,xerces-2)"</i>
546     </pre>
547    
548 neysx 1.11 </body>
549     </section>
550 swift 1.13 </chapter>
551    
552     <chapter>
553     <title>USE flags for use with Java</title>
554     <section>
555     <title>Setting USE flags</title>
556     <body>
557    
558     <p>
559 rane 1.17 For more information regarding USE flags, refer to the <uri
560     link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=2">USE flags</uri>
561 swift 1.13 chapter from the Gentoo Handbook.
562 neysx 1.11 </p>
563    
564     </body>
565     </section>
566 swift 1.13 <section>
567     <title>The flags</title>
568     <body>
569    
570     <ul>
571 nightmorph 1.23 <li>The <b>java</b> flag adds support for Java in a variety of programs</li>
572     <li>
573     The <b>nsplugin</b> flag adds support for Mozilla-like browsers (including
574     Firefox).You will need this for viewing Java applets in your Mozilla-like
575     browser.
576     </li>
577 rane 1.17 <li>
578 nightmorph 1.23 The <b>doc</b> flag will typically install API documentation, as generated
579     by javadoc.
580     </li>
581     <li>
582     The <b>source</b> flag will install a zip of the package's source code.
583     This is typically used to provide your IDE with the source code for the
584     package.
585 rane 1.17 </li>
586 rane 1.28 <li>
587     The <b>source</b> flag installs a zip of the source code of a package.
588     This is traditionally used for for IDEs to 'attach' source to the libraries
589     you are using.
590     </li>
591     <li>
592     For Java packages, the <b>doc</b> flag will build API documentation using
593     javadoc.
594     </li>
595 swift 1.13 </ul>
596    
597     </body>
598     </section>
599 neysx 1.11 </chapter>
600    
601     <chapter>
602     <title>Additional resources</title>
603     <section>
604     <title>Off-line resources</title>
605     <body>
606    
607     <ul>
608 rane 1.17 <li>java-config man page</li>
609     <li><c>java-config --help</c></li>
610 neysx 1.11 </ul>
611    
612     </body>
613     </section>
614     <section>
615     <title>Online resources</title>
616     <body>
617 rane 1.17
618 neysx 1.11 <ul>
619 nightmorph 1.23 <li>
620     The <uri link="http://www.gentoo.org/proj/en/java/">Java Project
621     Page</uri>
622     </li>
623 rane 1.17 <li>
624     The <uri
625 nightmorph 1.23 link="http://news.gmane.org/gmane.linux.gentoo.java">gentoo-java</uri>,
626     <uri
627     link="http://news.gmane.org/gmane.linux.gentoo.user">gentoo-user</uri>, and
628     <uri
629     link="http://news.gmane.org/gmane.linux.gentoo.devel">gentoo-dev</uri>
630 alin 1.18 mailing list archives
631 rane 1.17 </li>
632 alin 1.18 <li>#gentoo and #gentoo-java on irc.freenode.net</li>
633 rane 1.17 <li>
634     <uri
635     link="http://en.wikipedia.org/wiki/Java_programming_language">Wikipedia's
636     entry for Java</uri>
637     </li>
638 neysx 1.11 </ul>
639    
640     </body>
641     </section>
642     </chapter>
643 neysx 1.12 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20