Java/ru

Java is a programming language, originally developed by Sun Microsystems, which uses a runtime to allow running Java-developed applications on various platforms. It is a popular choice for developers who want to create cross-platform applications.

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

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

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

Установка JRE/JDK
Для установки дефолтного JDK из профиля, запустите:

Для установки дефолтного JRE из профиля, запустите

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

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

Установка виртуальной машины IcedTea GCJ
Виртуальная машина Icedtea доступна в виде исходного кода и требует компиляции байт-кода компилятором Java. Эту начальную установку можно запустить с помощью GNU Compiler for Java (GCJ). Этот компилятор доступен, если GCC собран с USE-флагом.

После того как GCC был пересобран с этим USE-флагом, можно приступить к установке пакета :

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

Загрузите указанные файлы в каталог, повторно запустите , после чего установка JRE/JDK будет продолжена.

Установка 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 for the selected JRE flavor.

В зависимости от используемого профиля Gentoo, эти флаги уже могут быть установлены. Как обычно, проверить, какие USE-флаги установлены для конкретного пакета можно, запустив в режиме pretend:

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

Установить общесистемную виртуальную машину java (VM), используемую по умолчанию, можно, запустив утилиту с административными привилегиями. Пользователи также могут воспользоваться этой утилитой для установки пользовательской виртуальной машины.

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

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

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

Альтернативный способ: выбор виртуальной машины с помощью номера:

В качестве обычного пользователя, запустите java-config.

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

Установка переменной CLASSPATH по умолчанию
также можно использовать для установки общесистемной и пользовательской переменной CLASSPATH по умолчанию.

Прежде всего, выведите все доступные библиотеки Java, установленные в системе, которые можно поместить в переменную CLASSPATH. Вот пример вывода:

Опять-таки, имена в квадратных скобках являются идентификаторами для передачи команде. Например:

Обновите среду, выйдя из системы и снова войдя в нее, либо с помощью команды.

Для пользователей, java-config --set-user-classpath создаст, который затем должен быть использован в качестве источника (source) для профиля оболочки.

Чтобы создать общесистемный или пользовательский classpath по умолчанию, добавьте строку, подобную следующей, в профиль оболочки. Это не рекомендуется:

Java-плагины браузера
Управление Java-плагином браузера раньше осуществлялось посредством команды. Это было убрано в целях простоты. Для базового использования, установите выбранную JVM с USE-флагом. Обратите внимание, что плагин от Oracle доступен только для архитектур и.

Также обратите внимание, что браузеры, основанные на Chromium, больше не поддерживают плагины на базе NPAPI, поскольку код был убран в сентябре 2015 года. Список поддерживаемых браузеров уменьшается, но по-прежнему включает в себя Firefox, на момент версии 46.

Для получения более подробной информации, включая выбор JVM, Web Start и multilib, читайте файл README, устанавливаемый с icedtea-web.

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

USE-флаги

 * флаг добавляет поддержку Java во множестве программ
 * флаг добавляет поддержку браузеров, похожих на Mozilla (включая Firefox). Это нужно для просмотра Java-апплетов в браузерах, похожих на Mozilla.
 * флаг добавляет поддержку Java Cryptography Engine

Следующие USE-флаги входят в переменную JAVA_PKG_IUSE.
 * Флаг устанавливает zip-файл с исходным кодом пакета. Это традиционно используется различными среда разработки (IDE) для 'присоединения' исходного кода к используемым библиотекам;
 * Для пакетов Java, флаг собирает документацию API с помощью javadoc.

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

 * Java Developer Guide
 * Project:Java/Why_build_from_source
 * Project:Java/Getting_Involved

Внешние ресурсы

 * The gentoo-java, gentoo-user и gentoo-dev архив почтовой рассылки
 * и на IRC
 * Java 7 and bootstrapping icedtea на форумах Gentoo

Дальнейшая информация доступна оффлайн:



Предложения и вопросы, касающиеся данной статьи, присылайте на email команды Gentoo Java: