Java (Русский)
"Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года." [1]
Contents |
Установка
В репозиториях ArchLinux, с недавнего времени (причина) находится одна Java-машина, доступная для установки — открытая реализация, имеющая название OpenJDK. Закрытая реализация от фирмы Sun доступна в AUR. В Арче для установки рекомендуется OpenJDK.
OpenJDK JVM
Для того, чтобы запускать программы, написанные на Java, вам понадобится установить OpenJDK. Вместе с ним установится Java Development Kit.
# pacman -S openjdk6
Sun JVM
Для того, чтобы запускать программы, написанные на Java, вы можете установить Sun JRE из AUR:
После установки необходимо будет перезапустить сеанс пользователя или добавить /opt/java/jre/bin/ в переменную окружения $PATH для использования java.
Для создания программ на языке Java, необходимо установить Sun JDK, который так же доступен теперь только в AUR
# source /etc/profile
BEA JRockit JIT JVM (+JDK)
Также вы можете попробовать JIT-реализацию Java из AUR. jrockit
Известные проблемы
MySQL
JDBC-драйверы используют для подключения URL-адрес и порт для установления соединения, так что подключение считается "удаленным" даже если БД находится на локальной машине. Поэтому необходимо разрешить доступ по сети в настройках MySQL.
Java и Pulseaudio
По умолчанию, 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.
Советы и подсказки
Поведение большинства 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.