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, но все еще доступны для использования средой сборки Gentoo, так как некоторые пакеты могут потребовать их для сборки. Настройка этих виртуальных машин в качестве системной или пользовательской машины строго не рекомендуется, так как эти виртуальные машины будут в таком случае использованы при запуске исполнимых файлов и также будут использованы любыми пакетами, не использующими сценарии запускателей Gentoo.

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

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

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

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

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

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

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

Компиляторы
Стандартным компилятором Java используемым для сборки является  также может быть использован для установки параметра CLASSPATH по умолчанию глобально, также как и для установки пользовательского параметра по умолчанию CLASSPATH.

Во-первых, Вам нужно перечислить доступные библиотеки Java, установленные на Вашей системе, которые, возможно, потребуется поместить в CLASSPATH. Ниже приведен пример результата работы команды:

И снова, имена в квадратных скобках ("[]") являются идентификаторами, которые Вам необходимо передать команде. Ниже приведен пример:

Вам также потребуется обновить настройки среды выходом из системы, а затем входом обратно; или запуском файла.

Для пользователей, команда  создаст файл, который Вы затем должны запустить из командной оболочки.

Запуск команд пользовательского файла classpath

Если Вы действительно хотите глобальный или пользовательский параметр classpath по умолчанию, Вы можете добавить что-то наподобие следующего в файл инициализации оболочки. Но мы этого не рекомендуем.

Установка плагина
Вы можете установить Java-плагин для веб-браузера установив Java VM с USE-флагом.

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

В этом примере,  в адресной строке.

Плагины на системах multilib
Если Вы пользуетесь смешанной 64 и 32- битной системой multilib (например, на AMD64), Вы можете использовать 64-битные и 32-битные Java-плагины. Если только Вы не имеете острую потребность в запуске 32-битных Java-приложений, мы рекомендуем пользоваться нативными 64-битными плагинами на 64-битных веб-браузерах.

Доступно несколько нативных 64-битных плагинов для браузера. В паре JDK/JRE по умолчанию,  и , оба пакета включают плагины для браузера. Просто установите один из них с включенным USE-флагом.

Чтобы пользоваться 32-битным плагином на 32-битном браузере, Вам потребуется установить  с включенным USE-флагом.

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

А теперь, выберите подходящий плагин для Ваших браузеров:

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

Установка USE-флагов
Чтобы найти больше информации по USE-флагам, обратитесь к главе USE-флаги настольной книги Gentoo.

Флаги

 * java флаг добавляет поддержку Java во множестве программ
 * флаг nsplugin добавляет поддержку браузеров, похожих на Mozilla (включая Firefox). Вам это потребуется для просмотра Java-апплетов в вашем браузере, похожем на Mozilla.
 * флаг source устанавливает zip-архив с исходными кодами пакета. Он традиционно используется интегрированными средами разработки, чтобы добавить исходный код к библиотекам, которые Вы используете.
 * флаг jce добавляет поддержку Java Cryptography Engine
 * Для Java-пакетов, doc флаг собирает документацию по API, используя javadoc.

Локальные ресурсы

 * ман-страница java-config

Источники онлайн

 * страница проекта Java
 * архивы списков рассылки gentoo-java, gentoo-user, и gentoo-dev
 * #gentoo и #gentoo-java на IRC
 * Статья Wikipedia по Java
 * Если у Вас есть предложения или вопросы по этому документу, направьте их по следующему email-адресу:

Благодарности
Мы хотели бы поблагодарить следующих авторов и редакторов за их вклад в это руководство:


 * Joshua Nichols
 * Karl Trygve Kalleberg
 * Joshua Saddler