Java (Русский)

From ArchWiki
Jump to: navigation, search
Tango-dialog-warning.png This article or section is out of date.
Reason: please use the first argument of the template to provide a brief explanation. (Discuss)
Tango-dialog-warning.png

"Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года." [1]

Contents

Установка

В репозиториях ArchLinux, с недавнего времени (причина) находится одна Java-машина, доступная для установки — открытая реализация, имеющая название OpenJDK. Закрытая реализация от фирмы Sun доступна в AUR. В Арче для установки рекомендуется OpenJDK.

OpenJDK JVM

Для того, чтобы запускать программы, написанные на Java, вам понадобится установить OpenJDK. Вместе с ним установится Java Development Kit.

Note: Установка openjdk6 или jre повлечет за собой установку Java плагина для Firefox. При возникновении каких-либо проблем с данным плагином, рекомендуется воспользоваться решением, приведенным для Flash-плагина для Firefox: Flash#Plugins_are_installed_but_not_working
# pacman -S openjdk6
Note: Если вы используете non-reparenting window manager, вам нужно раскомментировать необходимые строки в /etc/profile.d/openjdk6.sh

Sun JVM

Для того, чтобы запускать программы, написанные на Java, вы можете установить Sun JRE из AUR:

После установки необходимо будет перезапустить сеанс пользователя или добавить /opt/java/jre/bin/ в переменную окружения $PATH для использования java.

Для создания программ на языке Java, необходимо установить Sun JDK, который так же доступен теперь только в AUR

Note: Для реализации Java от компании Sun, вам понадобится перечитать файл /etc/profile для корректной инициализации переменной окружения JAVA_HOME
# source /etc/profile
Note: Для того, что бы узнать как осуществляется установка пакетов из AUR, рекомендуется прочитать соответствующую статью

BEA JRockit JIT JVM (+JDK)

Также вы можете попробовать JIT-реализацию Java из AUR. jrockit

Известные проблемы

MySQL

JDBC-драйверы используют для подключения URL-адрес и порт для установления соединения, так что подключение считается "удаленным" даже если БД находится на локальной машине. Поэтому необходимо разрешить доступ по сети в настройках MySQL.

Java и Pulseaudio

Note: Скорее всего, эта процедура потребуется только если используется Java 6.

По умолчанию, Java и Pulseaudio не очень хорошо ладят между собой, но это легко исправить с помощью утилиты padsp.

Нижеуказанные пути корректны для версии JVM от Sun. Возможно, Вам потребуется использовать другие пути для OpenJDK).

Во-первых, переименуйте исполняемый файл java в java.bin

# mv /opt/java/jre/bin/java /opt/java/jre/bin/java.bin

Затем создайте новый скрипт запуска /opt/java/jre/bin/java

#!/bin/sh
padsp /opt/java/jre/bin/java.bin "$@"

Убедитесь что созданный скрипт имеет права на выполнение

# chmod +x /opt/java/jre/bin/java

Вам придется повторять эти действия после каждого обновления Java.

Вы также можете попробовать использовать aoss вместо padsp, которая работает как в ALSA, так и в Pulse. Стоит помнить что подобные хаки иногда работают хорошо, а иногда могут привести к нестабильной работе.

Подмена имени используемого WM

Вы можете использовать wmname с suckless.org чтобы заставить думать виртуальную машину что Вы используете другой оконный менеджер. Это может решить проблему отображения пользовательского интерфейса Java-программ в оконных менеджерах вроде Awesome или Dwm.

$ wmname LG3D

Вы должны перезапустить приложение после ввода команды.

Это работает потому что виртуальная машина содержит жестко заданный список известных non-re-parenting window managers. Что характерно, многоие пользователи предпочитают представляться “LG3D” - оконным менеджером, являющимся non-re-parenting и который был спонсирован Sun.

Note: Вы можете раскомментировать соответствующую строку в скрипте openjdk6.sh/jre.sh находящемся в каталоге /etc/profile.d/

Советы и подсказки

Note: Рекомендации из этого раздела статьи применимы к приложениям, использующим уже установленную среду Java. Некоторые приложения используют свою собственную среду исполнения или собственные механизмы для пользовательского интерфейса, рендеринга шрифтов и т.д., поэтому нет никаких гарантий что нижеуказанные советы будут работать.

Поведение большинства Java-программ может контролироваться изменением переменных окружения. Это можно сделать [2] добавив следующую строку в ~/.bashrc (или /etc/profile.d/jre.sh если хотите чтобы изменения затронули всех пользователей):

export _JAVA_OPTIONS="-D<option 1> -D<option 2>..."

Например, чтобы использовать системные настройки сглаживания и заставить swing-приложения использовать GTK look and feel:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

Рендеринг шрифтов

И реализация от Sun, и open source реализации Java известны неправильным сглаживанием шрифтов. Это можно исправить следующими опциями: awt.useSystemAAFontSettings=on, swing.aatext=true

GTK LookAndFeel

Если Ваша программа выглядит ужасно, попробуйте установить стандартный look and feel для компонентов swing: swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel.

Некоторые Java-программы настойчиво используют кросс-платформенный Metal look and feel. Иногда в таких случаях можно принудительно заставить приложение использовать GTK look and feel установив следующее свойство:

swing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel.