Java/ru

Это руководство ознакомит Вас с языком Java и объяснит как использовать Java с Gentoo Linux.

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

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

Возможности на выбор
Gentoo предоставляет различные JRE (среды выполнения) и JDK (пакеты средств разработки программного обеспечения). В числе текущих вариантов, имеются:

Установка JRE/JDK
Для установки JDK Вашего профиля по умолчанию, Вы можете запустить. Или, чтобы установить JRE Вашего профиля по умолчанию, запустите.

Некоторые JDK и JRE, включая пакеты Sun, требуют принятия пользовательского соглашения (End User License Agreement), или EULA. Если их лицензия (такая как dlj-1.1) не перечислена в переменной ACCEPT_LICENSE в, то Вы не сможете установить JDK/JRE. Чтобы получить больше информации о том, как добавить подходящие лицензии в, пожалуйста, прочитайте Настольную книгу Portage.

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

Установка виртуальных машин с ограничениями на скачивание исходного кода
Некоторые JDK и JRE требуют, чтобы Вы преодолели несколько препятствий перед установкой. Просто запустите команду emerge как обычно. Ebuild-файлы затем проинструктируют Вас куда идти и что загрузить.

Вам необходимо скачать отмеченные файлы в. По завершении, Вы сможете перезапустить команду emerge, после чего начнется установка JRE/JDK.

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

Используя инструмент, Вы можете установить JRE и JDK для использованию по умолчанию глобально (при условии, что Вы обладаете доступом root). Пользователи также могут использовать  для установки их персональных JRE и JDK по умолчанию.

Установка виртуальной машины по умолчанию
Запуск команды  выведет вам список всех JRE и JDK, установленных на Вашу систему. Ниже приведен пример вывода:

* обозначает что эта виртуальная машина активна на данный момент (системная виртуальная машина или пользовательская виртуальная машина, когда это установлено). Имя в скобках ([]) является именем или идентификатором этой отдельной машины. Вы можете использовать имя или число в команде. Здесь представлен пример того как настроить системную виртуальную машину.

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

Вы также можете выбрать ее указав число:

Если Вы являетесь обычным пользователем, Вы можете использовать.

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

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

Переключение виртуальных машин во время установки требуется когда, например, ваша системная машина имеет номер версии 1.6, а устанавливаемый пакет требует виртуальную машину версии 1.5. При установке, он выберет для использования машину 1.5, оставив системную виртуальную машину без изменений.

Чтобы определить какая виртуальная машина выбрана, когда требуется переключение, мы создали список поддерживаемых виртуальных машин - "default/supported VMs" для каждой архитектуры. Вы можете их найти в.

Вы можете переписать значения по умолчанию (и даже выбранную Вами системную виртуальную машину) в и получить полный контроль над тем какая машина будет использована при установке пакета.

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

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

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

Компиляторы
Стандартным компилятором Java используемым для сборки является  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:

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

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

For users,  will create, which you should then source from your shell's profile.

Sourcing user specific classpath

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.

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

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:

In this example,  is selected for the browser plugin.

Verify that the correct plugin was selected:

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  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 use 64-bit and 32-bit Java plugins. Unless you have a pressing need to run 32-bit Java applications, we recommend using 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 the  USE flag enabled.

To use a 32-bit plugin on a 32-bit browser, you will need to emerge  with the   USE flag enabled.

Next, check which plugins are available:

Now select the right plugin for your browsers:

Verify the correct plugin was selected:

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.
 * The jce flag adds support for the Java Cryptography Engine
 * For Java packages, the doc flag will build API documentation using javadoc.

Off-line resources

 * java-config man page

Online resources

 * The Java Project Page
 * The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
 * #gentoo and #gentoo-java on IRC
 * Wikipedia's entry for Java
 * If you have suggestions or questions regarding this document, please email the Gentoo Java team:

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * Joshua Nichols
 * Karl Trygve Kalleberg
 * Joshua Saddler