Java/ru

This guide introduces the reader to Java and explains how to use Java with Gentoo Linux.

Общий обзор
Java — это язык программирования, разрабатываемый инженерами Sun Microsystems. Язык является объектно-ориентированным и предназначен для запуска на различных платформах без необходимости перекомпиляции кода для каждой платформы. Хотя программа на Java и может быть скомпилирована в нативный код, изрядную долю популярности языку принесла портируемость, а также некоторые другие возможности, такие как сборка мусора. Чтобы сделать независимость от платформы возможной, компилятор Java компилирует Java-код в промежуточное представление, называемое «байт-кодом Java» (Java bytecode), которое запускается в JRE (среде выполнения Java), а не непосредственно в операционной системе.

Для запуска байт-кода Java, необходимо наличие установленной JRE (Java Runtime Environment). JRE предоставляет доступ к основным библиотекам, зависящей от платформы виртуальной машине Java, плагинам для браузеров и другим вещам. JDK (Java Development Kit) добавляет программные инструменты, такие как компилятор в байт-код и отладчик.

Возможности на выбор
Gentoo provides numerous Java Runtime Environments (JREs) and Java Development Kits (JDKs). The current choices include:

Installing a JRE/JDK
To install the profile's default JDK run:

To install the profile's default JRE run:

Some JDKs and JREs, including the Sun packages, require accepting an End User License Agreement, or EULA. If its license (such as dlj-1.1) is not listed in the ACCEPT_LICENSE variable (found in ), then the JDK/JRE will be unable to be installed. For more information on how to add acceptable licenses to read the Licenses chapter of the Portage Handbook.

Чтобы избежать какой-либо суматохи с лицензионными ограничениями, рассмотрите установку icedtea-bin, который является открытой реализацией Java из проекта OpenJDK.

Установка виртуальных машин с ограничениями на скачивание исходного кода
Some of the JDKs and JREs require a few extra steps in their configurations. Emerge the packages as normal. If additional steps are required the ebuilds will provide instruction for the user on where to go and what to download.

Download the indicated file(s) into Once the files are in the right directories, rerun the  command, at which point the JRE/JDK will be begin to install.

Setting up a headless JRE
Sometimes there is no need for a full JRE with all the capabilities of java. Using java on a server often does not require any GUI, graphical, sound or even printer related features. To install a simplified (sometimes also referred to as headless) JRE, a few USE flags need to be changed.

Depending on the current Gentoo profile, this might already be the case. As usual, the USE flag settings that are applicable to a particular package can be checked by running in pretend mode:

Общий обзор
На Gentoo, возможна установка множества разных JDK и JRE без вызова конфликтов.

Using the tool with root privileges, a system-wide default java virtual machine (VM) can be set. Users can also use java-config to custom set their personal VM on a user-by-user basis.

Установка виртуальной машины по умолчанию
Running the command with the   option will output a list of all JREs and JDKs installed on the system. Here is an example of the output:

The * indicates this is the current active JVM (system-vm or user-vm when set). The name in the brackets ([]) is the handle or ID for that particular VM. The handle or the number to can be used to set the VM. The following text provides an example of how to set the system VM.

Установка системной виртуальной машины с использованием имени (рекомендуемый способ):

Alternate method: select VM by number handle number:

As a regular user, use java-config.

Build only VM
Некоторые виртуальные машины отмечены как build-only, вследствие завершения жизненного цикла (EOL) и/или содержащихся уязвимостей. Эти виртуальные машины не выбираются системой автоматически с использованием Gentoo Launchers (скрипт, созданный для переключения виртуальных машин в Java), но все еще доступны для использования средой сборки Gentoo, так как некоторые пакеты могут потребовать их для сборки. Настройка такой виртуальной машины в качестве системной или пользовательской машины строго не рекомендуется, так как в таком случае она будет использоваться для запуска, а также ее будут использовать пакеты, не использующие стандартные скрипты Gentoo для запуска Java-приложений.

Preferred build VM
При установке Java-пакетов, виртуальная машина используемая для сборки может иногда отличаться от той, которая установлена в качестве системной виртуальной машины.

This merge time VM switching is needed when, for example, the system-vm is set to a 1.6 VM and the package being merge requires a 1.5 VM. While merging it will select and use a 1.5 VM, leaving the system-vm choice intact.

To define which VM is selected when a switch is needed, a list of default/supported VMs per arch has been created. It can be found in.

These defaults can be over written (even the selected system VM) in for complete control over which VM will get used for merging.

Например, чтобы всегда использовать sun-jdk:

Или, чтобы всегда использовать sun-jdk-1.5 там, где это возможно, исключая те случаи, когда явно требуется виртуальная машина версии 1.4 или 1.3:

Или, чтобы использовать различных поставщиков для разных версий, таких как требующих  если запрашивается виртуальная машина версии 1.3 (да-да, 1.3), и возвращения обратно к ibm-jdk-bin в другом случае:

Компиляторы
The standard Java compiler used for building is, 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, define a list with preference for which compiler to use in.

Некоторые компиляторы не поддерживают все возможные аргументы  и. Следовательно, каждый компилятор в списке проверяется на то, поддерживает ли он желаемые /. javac будет работать во всех случаях, поэтому, если не найдено другого подходящего компилятора, он будет использован вместо него.

Больше подробностей по каждому компилятору представлено ниже:

Установка переменной CLASSPATH по умолчанию
can also be used to set a system-wide default CLASSPATH, as well a user-specific default CLASSPATH.

First, list available Java libraries installed on the system to possibly put in the CLASSPATH variable. Here is an example of output:

Again, the names in brackets ([]) are the IDs to pass to. Here is an example:

Update the environment by logging out, then in again or by typing

For users, java-config --set-user-classpath will create, which should then source from the shell's profile.

If desiring a system wide or user default classpath add something like the following to the shell's profile. This is advised against:

Установка плагина
It is possible to install a Java plugins for a web browsers by emerging a Java VM with the  USE flag set.

Portage will allow installations of multiple Java plugins versions, though only one will be used by the web browser. Check the list of available plugins by running:

In this example, is selected for the browser plugin.

Проверьте, что был выбран правильный плагин:

Java.com also provides a link to verify the installed plugin. Additionally, if a Mozilla-based browser is being used, verification of the Java plugin can be performed by typing into the address bar.

Плагины на системах с multilib
If running a mixed 64-bit and 32-bit multilib system (for example, on ), use both 64-bit and 32-bit Java plugins. Unless there is a pressing need to run 32-bit Java applications, users have been recommended to use native 64-bit plugins on 64-bit web browsers.

There are several native 64-bit browser plugins available. The default JDK/JRE pair,  and , both include browser plugins. Just emerge one of them with  USE enabled.

To use a 32-bit plugin on a 32-bit browser, the package will need to be emerged with   USE enabled.

Затем, проверьте какие плагины доступны:

Now select the right plugin for the browser:

Проверьте, что был выбран правильный плагин:

Настройка USE флагов
For more information regarding USE flags, refer to the USE flags chapter from the Gentoo Handbook.

USE flags

 * The flag adds support for Java in a variety of programs;
 * The flag adds support for Mozilla-like browsers (including Firefox). This is needed for viewing Java applets in a Mozilla-like browser;
 * The flag adds support for the Java Cryptography Engine;

Following USE flags go in JAVA_PKG_IUSE.
 * The flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries that are being use;
 * For Java packages, the flag will build API documentation using javadoc.

Смотрите также

 * The Java User Guide in the Java project

Ссылки

 * The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
 * and on IRC
 * Java 7 and bootstrapping icedtea on the Gentoo forums

More information can be found offline:



For suggestions or questions regarding this document, please email the Gentoo Java team: