文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Gentoo 安装Java

Gentoo 安装Java

时间:2007-10-22  来源:linxh

Gentoo 中的jdk默认版本是1.6(?)。通过命令

eix jdk

查看其可选的软件包及其版本。 通过下面的命令来安装 jdk1.5

emerge "=jdk-1.5.0"

//////

注: /usr/bin/run-java-tool

tool="java"

/////
参考:

Gentoo Java Guide

3. Installing a Virtual Machine

The choices

Gentoo provides numerous Runtime Environments (JREs) and Development Kits (JDKs). Among the current choices, we have:

Vendor JDK JRE
The Blackdown Java Kit dev-java/blackdown-jdk dev-java/blackdown-jre
Sun's Java Kit dev-java/sun-jdk dev-java/sun-jre-bin
The IBM Java Kit dev-java/ibm-jdk-bin dev-java/ibm-jre-bin
The Compaq Java Kit for Alpha/Linux/GNU dev-java/compaq-jdk dev-java/compaq-jre
BEA WebLogic's J2SE Development Kit dev-java/jrockit-jdk-bin

The default for Java 1.4 is the Blackdown JRE/JDK pair, as it is freely ("free as in beer") available without any registration fuss.

JREs and JDKs from Sun, IBM, and BEA are generally faster, but getting them is a bit more work, as you are required to read and accept their license before downloading (IBM additionally requires you to register).

Installing a JRE/JDKs

To install your profile's default JDK, you can run emerge virtual/jdk. Or to install your profile's default JRE, you can emerge virtual/jre.

In recent events, Sun has relicensed their JDK and JRE under a more Linux distro friendly license. As a result, Sun releases Java 1.5 and onwards are freely downloadable, without any further hassle.

Note: A JDK also includes a JRE, so if you install a JDK you shouldn't have to also have to install a JRE.

Installing fetch-restricted virtual machines

As already mentioned, some of the JDKs and JREs require you to jump through a few hoops before installing. Simply emerge the packages as you normally would. The ebuilds will then instruct you where to go and what to download.

You should download the indicated file(s) into /usr/portage/distfiles. Once there, you can rerun the emerge command, at which point the JRE/JDK will be begin to install.

4. Configuring your virtual machine

Overview

Gentoo has the ability to have multiple JDKs and JREs installed without causing conflicts.

Using the java-config tool, you can set the system-wide default (provided you have root access). Users can also use java-config to set up their own personal default.

Note: You can also use eselect to change the system and user vm. See eselect java-vm help.

Setting a default virtual machine

Running the command java-config --list-available-vms will give you a list of all JREs and JDKs installed on your system. Here is an example of output:

Code Listing 4.1: Listing available VMs

# java-config --list-available-vms
The following VMs are available for generation-2:
1) Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2]
2) Blackdown JRE 1.4.2.03 [blackdown-jre-1.4.2]
3) Blackdown 32bit JRE 1.4.2.03 [emul-linux-x86-java-1.4.2]
4) Sun 32bit JRE 1.5.0.08 [emul-linux-x86-java-1.5]
5) Kaffe 1.1.7 [kaffe]
*) Sun JDK 1.5.0.08 [sun-jdk-1.5]

The * indicates this is the current active vm (system-vm or user-vm when set). The name in the brackets ([]) is the handle or ID for that particular VM. You use the handle or the number to java-config --set-system-vm. Here is an example of how to set the system VM.

Code Listing 4.2: Setting the System VM

(By handle (preferred))
# java-config --set-system-vm blackdown-jdk-1.4
Now using blackdown-jdk-1.4 as your generation-2 system JVM
(By number)
# java-config --set-system-vm 6
Now using sun-jdk-1.5 as your generation-2 system JVM

As a regular user, you can use java-config --set-user-vm.

Note: You no longer have to source the profile for updates to the user/system VM take place.

Preferred VM

While merging Java packages, the VM can and will be switched as necessary.

Because of the wide variety of available VMs, we do not have the resources to test and verify every package works on all of them. So to ensure that every packages merges smoothly, we have defined a list of default/supported VMs per arch. You can find them in /usr/share/java-config-2/config/jdk-defaults.conf. When you are merging a Java package, and it detects one of the VM in that file is installed, it will automatically use that VM, instead of the system-vm.

The merge time VM switching is also needed when, for example, your system-vm is set a 1.4 VM and the package you are merging requires a 1.5 VM. While merging it will use the preferred 1.5 VM, leaving your system-vm choice intact.

Of course, Gentoo is all about choice, so you can override these defaults in /etc/java-config-2/build/jdk.conf and have complete control over which VM will get used. Some examples:

Code Listing 4.3: Example /etc/java-config-2/build/jdk.conf

(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)
*=sun-jdk

Code Listing 4.4: Example /etc/java-config-2/build/jdk.conf

(Always use sun-jdk-1.5 wherever possible, except for when a 1.4 or 1.3 VM is explicitly required)
*=sun-jdk-1.5

Code Listing 4.5: Example /etc/java-config-2/build/jdk.conf

# For 1.3 I prefer sun-jdk 1.4 but when it is not available, use ibm-jdk-bin,
# For 1.4, use blackdown-jdk, and for 1.5, use sun-jdk

1.3=sun-jdk-1.4 ibm-jdk-bin
1.4=blackdown-jdk
1.5=sun-jdk

Warning: You do not have to edit this file. If you change these options to use a unsupported VM, things could possibly break. Bugs reported with a unsupported VM won't be prioritized as much as bugs present within supported VMs.

5. Compilers

The standard Java compiler used for building is javac, which comes with each JDK. In addition to configuring the VM used at build time, it is also possible configure which compiler is used. Essentially, you define a list your preference for which compiler to use in /etc/java-config-2/build/compilers.conf.

Code Listing 5.1: /etc/java-config-2/build/compilers.conf

# If the ebuild supports it
# it will check the COMPILERS var front to back and
# use the first compiler that is installed

COMPILERS="ecj-3.1 jikes javac"

Some compilers don't support all possible -target and -source arguments. Therefore, each compiler in the list is checked to see if it can support the desired -source/-target. javac will work in all cases, so if no other suitable compiler is found, it will be used instead.

More details about each compiler are provided below:

Name Handle Package Description
javac javac N/A This is the default compiler that will be used, and comes with each JDK.
jikes jikes dev-java/jikes Jikes was originally developed by IBM. Anecdotally, it is generally quicker than javac. Note however, that it is more pedantic, and will fail under a few circumstances where javac has no issue. It also does not support Java 1.5 syntax yet.
Eclipse Compiler for Java ecj-3.1 =dev-java/eclipse-ecj-3.1* ECJ is the compiler used by the Eclipse software development kit. It is very full featured, and is pretty fast. It does support Java 1.5 syntax.

6. Setting a default CLASSPATH

Warning: The options explained in this section should be considered deprecated and will most likely be removed in the future. We strongly recommend against using these, because your Java projects or application should ideally manage their own classpaths. If you choose to specify a default CLASSPATH, some applications may behave unexpectedly, because classes they weren't expecting would be on the classpath.

java-config can also be used to set a system-wide default CLASSPATH, as well a user-specific default CLASSPATH.

First, you will want to list available Java libraries installed on your system that might want to be put in your CLASSPATH. Here is an example of output:

Code Listing 6.1: Listing classes

# java-config --list-available-packages
[xerces-2] The next generation of high performance, fully compliant XML parsers in the Apache Xerces family (/usr/share/xerces-2/package.env)
[junit] Simple framework to write repeatable tests (/usr/share/junit/package.env)
[bsh] BeanShell: A small embeddable Java source interpreter (/usr/share/bsh/package.env)
[bcel] The Byte Code Engineering Library: analyze, create, manipulate Java class files (/usr/share/bcel/package.env)
[log4j] A low-overhead robust logging package for Java (/usr/share/log4j/package.env)
...

Again, the names in brackets ([]) are the IDs that you have to pass to java-config --set-system-classpath. Here is an example:

Code Listing 6.2: Setting classpaths

# java-config --set-system-classpath log4j,xerces-2 

Note: The current directory (.) will not be part of the system classpath, as that should be added in your system's login profile.

You will have to update your environment by logging out, then in again or sourcing /etc/profile.

For users, java-config --set-user-classpath will create ~/.gentoo/java-env-classpath, which you should then source from your shell's profile.

Code Listing 6.3: Sourcing user specific classpath

if [[ -f "${HOME}/.gentoo/java-env-classpath" ]]; then
source ${HOME}/.gentoo/java-env-classpath
fi

If you really want a system wide or user default classpath you can add something like the following to your shell's profile. But we would advise against it.

Code Listing 6.4: Setting classpath

# export CLASSPATH="${CLASSPATH}:$(java-config --classpath log4j,xerces-2)" 

7. Java Browser Plugins

Installing a plugin

You can install a Java plugin for your web browser by emerging a Java VM with the nsplugin USE flag set.

Note: nsplugin is not available for all architectures. Check for available plugins on your arch before trying to install a VM by running emerge -pv <java-vm>.

Portage will allow you to install multiple versions of Java plugins, though only one will be used by your browser. You can check the list of available plugins by running:

Code Listing 7.1: Viewing available plugins

# eselect java-nsplugin list
[1] sun-jre-bin-1.5
[2] blackdown-jre-1.4.2

In this example, sun-jre-bin is selected for the browser plugin.

Code Listing 7.2: Selecting a plugin

# eselect java-nsplugin set sun-jre-bin-1.5 

Verify that the correct plugin was selected:

Code Listing 7.3: Verifying the correct plugin

# eselect java-nsplugin list
[1] sun-jre-bin-1.5 current
[2] blackdown-jre-1.4.2

Java.com also provides a link to verify your installed plugin. Additionally, if you are using a Mozilla-based browser, you can verify your Java plugin by typing about:plugins into the address bar.

Plugins on multilib systems

If you are running a mixed 64-bit and 32-bit multilib system (for example, on AMD64), you can only use 32-bit Java plugins.

To use a 32-bit plugin, you will need to emerge emul-linux-x86-java with the nsplugin USE flag enabled.

Code Listing 7.4: Installing a 32-bit plugin

# echo "app-emulation/emul-linux-x86-java nsplugin" >> /etc/portage/package.use
# emerge emul-linux-x86-java

Next, check which plugins are available:

Code Listing 7.5: Viewing available plugins

# eselect java-nsplugin list
Available 32-bit Java browser plugins
[1] emul-linux-x86-java-1.4.2
[2] emul-linux-x86-java-1.5

Although you must select a 32-bit browser (such as mozilla-firefox-bin) to use with your 32-bit plugin, the 64-bit version of konqueror uses your Java VM directly, so it's possible to use the 64-bit version of blackdown with this browser; no further configuration is necessary.

Now select the right plugin for your 32-bit browser:

Code Listing 7.6: Selecting plugins

# eselect java-nsplugin set 32bit emul-linux-x86-java-1.5 

Verify the correct plugin was selected:

Code Listing 7.7: Verifying the correct plugin

# eselect java-nsplugin list
Available 32-bit Java browser plugins
[1] emul-linux-x86-java-1.4.2
[2] emul-linux-x86-java-1.5 current

8. USE flags for use with Java

Setting USE flags

For more information regarding USE flags, refer to the USE flags chapter from the Gentoo Handbook.

The flags

  • The java flag adds support for Java in a variety of programs
  • The nsplugin flag adds support for Mozilla-like browsers (including Firefox). You will need this for viewing Java applets in your Mozilla-like browser.
  • The source flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries you are using.
  • For Java packages, the doc flag will build API documentation using javadoc.

9. Additional resources

Off-line resources

  • java-config man page
  • java-config --help

Online resources

  • The Java Project Page
  • The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
  • #gentoo and #gentoo-java on irc.freenode.net
  • Wikipedia's entry for Java

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载