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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.44 Revision 1.49
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/java.xml,v 1.44 2009/10/07 18:14:31 nightmorph Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/java.xml,v 1.49 2010/07/06 11:51:28 jkt Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/java.xml"> 5<guide>
6<title>Gentoo Java Guide</title> 6<title>Gentoo Java Guide</title>
7 7
8<author title="Author"> 8<author title="Author">
9 <mail link="nichoj@gentoo.org">Joshua Nichols</mail> 9 <mail link="nichoj@gentoo.org">Joshua Nichols</mail>
10</author> 10</author>
22 22
23<!-- The content of this document is licensed under the CC-BY-SA license --> 23<!-- The content of this document is licensed under the CC-BY-SA license -->
24<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 24<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
25<license/> 25<license/>
26 26
27<version>0.19</version> 27<version>0.23</version>
28<date>2009-10-07</date> 28<date>2010-07-06</date>
29 29
30<chapter> 30<chapter>
31<title>What is Java?</title> 31<title>What is Java?</title>
32<section> 32<section>
33<title>Overview</title> 33<title>Overview</title>
98 <th>Vendor</th> 98 <th>Vendor</th>
99 <th>JDK</th> 99 <th>JDK</th>
100 <th>JRE</th> 100 <th>JRE</th>
101</tr> 101</tr>
102<tr> 102<tr>
103 <ti>The Blackdown Java Kit</ti>
104 <ti>dev-java/blackdown-jdk</ti>
105 <ti>dev-java/blackdown-jre</ti>
106</tr>
107<tr>
108 <ti>Sun's Java Kit</ti> 103 <ti>Sun's Java Kit</ti>
109 <ti>dev-java/sun-jdk</ti> 104 <ti>dev-java/sun-jdk</ti>
110 <ti>dev-java/sun-jre-bin</ti> 105 <ti>dev-java/sun-jre-bin</ti>
111</tr> 106</tr>
112<tr> 107<tr>
123<!-- 118<!--
124TODO: list free implementations? 119TODO: list free implementations?
125note about not drop-in replacements 120note about not drop-in replacements
126kaffe/sablevm/gcj/jamvm 121kaffe/sablevm/gcj/jamvm
127--> 122-->
128<p>
129The default for Java 1.6 is the Sun JRE/JDK pair.
130</p>
131
132</body> 123</body>
133</section> 124</section>
134<section> 125<section>
135<title>Installing a JRE/JDKs</title> 126<title>Installing a JRE/JDKs</title>
136<body> 127<body>
140Or to install your profile's default JRE, you can <c>emerge virtual/jre</c>. 131Or to install your profile's default JRE, you can <c>emerge virtual/jre</c>.
141</p> 132</p>
142 133
143<p> 134<p>
144In recent events, Sun has relicensed their JDK and JRE under a more Linux 135In recent events, Sun has relicensed their JDK and JRE under a more Linux
145distro friendly license. As a result, Sun releases Java 1.5 and onwards are 136distro friendly license. As a result, Sun Java 1.5 and onwards are
146freely downloadable, without any further hassle. 137freely downloadable, without any further hassle.
147</p> 138</p>
148 139
149<note> 140<note>
150A JDK also includes a JRE, so if you install a JDK you shouldn't have to also 141A JDK also includes a JRE, so if you install a JDK you shouldn't have to also
208</p> 199</p>
209 200
210<pre caption="Listing available VMs"> 201<pre caption="Listing available VMs">
211# <i>java-config --list-available-vms</i> 202# <i>java-config --list-available-vms</i>
212The following VMs are available for generation-2: 203The following VMs are available for generation-2:
2131) Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2] <comment>(Build Only)</comment>
2142) Blackdown JRE 1.4.2.03 [blackdown-jre-1.4.2] <comment>(Build Only)</comment>
2153) IcedTea6-bin 1.4.1 [icedtea6-bin] 2041) IcedTea6-bin 1.4.1 [icedtea6-bin]
2164) Sun JDK 1.5.0.20 [sun-jdk-1.5] <comment>(Build Only)</comment> 2052) Sun JDK 1.5.0.20 [sun-jdk-1.5] <comment>(Build Only)</comment>
217*) Sun JDK 1.6.0.16 [sun-jdk-1.6] 206*) Sun JDK 1.6.0.16 [sun-jdk-1.6]
218</pre> 207</pre>
219 208
220<note> 209<note>
221VMs marked as Build Only may contain security vulnerabilities and/or be EOL. 210VMs marked as Build Only may contain security vulnerabilities and/or be EOL.
231--set-system-vm</c>. Here is an example of how to set the system VM. 220--set-system-vm</c>. Here is an example of how to set the system VM.
232</p> 221</p>
233 222
234<pre caption="Setting the System VM"> 223<pre caption="Setting the System VM">
235<comment>(By handle (preferred))</comment> 224<comment>(By handle (preferred))</comment>
236# <i>java-config --set-system-vm blackdown-jdk-1.4</i> 225# <i>java-config --set-system-vm sun-jdk-1.6</i>
237Now using blackdown-jdk-1.4 as your generation-2 system JVM 226Now using sun-jdk-1.6 as your generation-2 system JVM
238WARNING: blackdown-jdk-1.4 is marked as a build-only JVM. Using this vm is not recommended.
239<comment>(By number)</comment> 227<comment>(By number)</comment>
240# <i>java-config --set-system-vm 5</i> 228# <i>java-config --set-system-vm 3</i>
241Now using sun-jdk-1.6 as your generation-2 system JVM 229Now using sun-jdk-1.6 as your generation-2 system JVM
242</pre> 230</pre>
243 231
244<p> 232<p>
245As a regular user, you can use <c>java-config --set-user-vm</c>. 233As a regular user, you can use <c>java-config --set-user-vm</c>.
269</p> 257</p>
270 258
271</body> 259</body>
272</section> 260</section>
273<section id="preferred-vm"> 261<section id="preferred-vm">
274<title>Preferred VM</title> 262<title>Preferred Build VM</title>
275<body> 263<body>
276 264
277<p>
278While merging Java packages, the VM can and will be switched as necessary.
279</p> 265<p>
280 266While merging Java packages, the VM used for building can sometimes be different
267from the one currently set as the system VM.
281<p> 268</p>
282Because of the wide variety of available VMs, we do not have the resources to 269
283test and verify every package works on all of them. So to ensure that every 270<p>
284packages merges smoothly, we have defined a list of <e>default/supported 271This merge time VM switching is needed when, for example, your system-vm is
272set to a 1.6 VM and the package you are merging requires a 1.5 VM. While merging
273it will select and use a 1.5 VM, leaving your system-vm choice intact.
274</p>
275
276<p>
277To define which VM is selected when a switch is needed, we have created a list of <e>default/supported
285VMs</e> per arch. You can find them in 278VMs</e> per arch. You can find them in
286<path>/usr/share/java-config-2/config/jdk-defaults.conf</path>. When you are 279<path>/usr/share/java-config-2/config/jdk-defaults.conf</path>.
287merging a Java package, and it detects one of the VM in that file is installed,
288it will automatically use that VM, instead of the system-vm.
289</p>
290
291<p> 280</p>
292The merge time VM switching is also needed when, for example, your system-vm is 281
293set a 1.4 VM and the package you are merging requires a 1.5 VM. While merging
294it will use the preferred 1.5 VM, leaving your system-vm choice intact.
295</p> 282<p>
296
297<p>
298Of course, Gentoo is all about choice, so you can override these defaults in 283Of course, Gentoo is all about choice, so you can override these defaults (and even your
284selected system VM) in
299<path>/etc/java-config-2/build/jdk.conf</path> and have complete control over 285<path>/etc/java-config-2/build/jdk.conf</path> and have complete control over
300which VM will get used. Some examples: 286which VM will get used for merging. Some examples:
301</p> 287</p>
302 288
303<pre caption="Example /etc/java-config-2/build/jdk.conf"> 289<pre caption="Example /etc/java-config-2/build/jdk.conf">
304<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> 290<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>
305*=sun-jdk 291*=sun-jdk
310*=sun-jdk-1.5 296*=sun-jdk-1.5
311</pre> 297</pre>
312 298
313<pre caption="Example /etc/java-config-2/build/jdk.conf"> 299<pre caption="Example /etc/java-config-2/build/jdk.conf">
314<comment># For 1.3 I prefer sun-jdk 1.4 but when it is not available, use ibm-jdk-bin, 300<comment># For 1.3 I prefer sun-jdk 1.4 but when it is not available, use ibm-jdk-bin,
315# For 1.4, use blackdown-jdk, and for 1.5, use sun-jdk </comment> 301# For 1.5, use sun-jdk </comment>
3161.3=sun-jdk-1.4 ibm-jdk-bin 3021.3=sun-jdk-1.4 ibm-jdk-bin
3171.4=blackdown-jdk
3181.5=sun-jdk 3031.5=sun-jdk
319</pre> 304</pre>
320 305
321<warn> 306<warn>
322You do not have to edit this file. If you change these options to use a 307You do not <e>have</e> to edit this file. If you change these options to use a
323unsupported VM, things could possibly break. Bugs reported with a unsupported 308unsupported VM, things could possibly break. Because of the wide variety of available
324VM won't be prioritized as much as bugs present within supported VMs. 309VMs, we do not have the resources to test and verify every package works on all of them.
310Bugs reported with a unsupported VM won't be prioritized as much as bugs present within
311supported VMs.
325</warn> 312</warn>
326 313
327</body> 314</body>
328</section> 315</section>
329</chapter> 316</chapter>
344<pre caption="/etc/java-config-2/build/compilers.conf"> 331<pre caption="/etc/java-config-2/build/compilers.conf">
345# If the ebuild supports it 332# If the ebuild supports it
346# it will check the COMPILERS var front to back and 333# it will check the COMPILERS var front to back and
347# use the first compiler that is installed 334# use the first compiler that is installed
348 335
349COMPILERS="ecj-3.1 jikes javac" 336COMPILERS="ecj-X.Y jikes javac"
350</pre> 337</pre>
351 338
352<p> 339<p>
353Some compilers don't support all possible -target and -source arguments. 340Some compilers don't support all possible -target and -source arguments.
354Therefore, each compiler in the list is checked to see if it can support the 341Therefore, each compiler in the list is checked to see if it can support the
386 1.5 syntax yet. 373 1.5 syntax yet.
387 </ti> 374 </ti>
388</tr> 375</tr>
389<tr> 376<tr>
390 <ti>Eclipse Compiler for Java</ti> 377 <ti>Eclipse Compiler for Java</ti>
391 <ti>ecj-3.1</ti> 378 <ti>ecj</ti>
392 <ti>=dev-java/eclipse-ecj-3.1*</ti> 379 <ti>dev-java/eclipse-ecj</ti>
393 <ti> 380 <ti>
394 ECJ is the compiler used by the Eclipse software development kit. It is 381 ECJ is the compiler used by the Eclipse software development kit. It is
395 very full featured, and is pretty fast. It does support Java 1.5 syntax. 382 very full featured, and is pretty fast. It does support Java 1.5 syntax.
396 </ti> 383 </ti>
397</tr> 384</tr>

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.49

  ViewVC Help
Powered by ViewVC 1.1.20