Где находится java

Установка и настройка Java
Установка и
настройка Java (ч. 2)
В предыдущей части мы написали простую программу с помощью онлайн-редактора кода. Если хотите, можете им пользоваться какое-то время. Но рано или поздно придется идти дальше в познании Java и сопутствующих технологий. А для этого уже нужны совсем другие инструменты. О некоторых из них мы и поговорим в этой статье.
Для того чтобы начать писать приложения на Java у себя на компьютере, требуется выполнить подготовительную работу, связанную с установкой и настройкой необходимых программ.
1. Написано однажды, работает везде
Java — это не просто язык. Это целая платформа, экосистема, состоящая из набора инструментов для разработчиков и разных подсистем. При этом Java является кроссплатформенным языком.
Под платформой обычно понимают сочетание аппаратной (процессор) и программной (операционная система, ОС) части.
В предыдущей статье наша маленькая программка выводила фразу: «Write once, run anywhere». Это девиз Java, подчеркивающий ее платформонезависимость.
Раньше приложения писали под конкретную ОС. Это означало, что перенести их с одной ОС на другую было крайне проблематично. Приходилось под каждую из них создавать чуть ли не с нуля новую версию программы. Зачастую под каждую платформу нанимали новую команду разработчиков. Это трудозатратно и выходит намного дороже по стоимости.
В какой-то момент возникла идея сделать универсальную платформу, на которой могли бы работать приложения, написанные под разные ОС.
Для реализации этой задумки была создана виртуальная машина (Java Virtual Machine, JVM). Это специальное приложение, которое позволяет запускать программы, написанные на Java, на любой ОС и любом железе (при условии, что JVM реализована для используемой платформы).
Виртуальная машина является прослойкой между процессором и программным кодом. При этом она запускает не файлы с исходным кодом (с расширением .java), а специальные промежуточные файлы с расширением .class в которых хранится байт-код. Этот код назван так из-за того, что представляет собой набор команд в один байт, хотя имеются команды и большей длины.
В использовании байт-кода и заключается магия переносимости программ с одной ОС на другую без внесения каких-либо изменений.
Чтобы из исходного файла получить файл, понятный JVM, его нужно скомпилировать.
Компиляция — это процесс преобразования кода, написанного на языке программирования, например, Java в специальный код, который компьютер (в нашем случае JVM) может понять и запустить. Для компиляции используется программа под названием компилятор.
Все виртуальные машины, неважно на какой ОС они установлены, знают и понимают байт-код одинаково хорошо, т. к. он представляет собой не машинные команды конкретной компьютерной платформы (конкретного процессора в виде последовательности нулей и единиц), а команды JVM. За счет этого и реализуется кроссплатформенность. Промежуточный код не зависит от какой-то ОС или процессора, т. к. не содержит код, созданный специально под них. Он содержит байт-код, который одинаково интерпретируется JVM на любой платформе.
. как установить Java на Windows?
Во многих моих тренингах так или иначе используется Java, либо как язык программирования для разработки автотестов, либо как виртуальная машина для запуска приложений, написанных на Java — инструментов тестирования, сред разработки, и даже клиент системы видеоконференций GotoWebinar требует наличия Java.
Поэтому я решил описать процедуру установки Java для операционной системы Windows и последующей настройки системы, потому что, к сожалению, недостаточно просто “запустить инсталлятор и всегда нажимать кнопку Next”.
1. Где взять Java?
2. Какую версию выбрать?
Разумеется, последнюю доступную (на момент написания инструкции это Java 8).
Выбирая из 32-битной и 64-битной версий, берите 64-битную, если ваша операционная система это позволяет, потому что у неё менее строгие ограничения по памяти, доступной исполняемым Java-приложениям.
3. Что устанавливать, JRE или JDK?
Java Runtime Environment, или JRE — это виртуальная машина, позволяющая запускать приложения, написанные на языке программирования Java.
Java Development Kit, или JDK — это набор инструментов, для разработки программ на языке программирования Java (компилятор, архиватор, генератор документации и прочие). JRE разумеется тоже входит в дистрибутив JDK.
Правило очень простое: если вы собираетесь что-нибудь писать на языке программирования Java, значит вам потребуется JDK. А если только запускать готовые программы — тогда достаточно JRE.
4. Установка Java
Вот тут, действительно, всё просто — нужно запустить инсталлятор и следовать указаниям визарда. Можно просто всё время нажимать кнопку Next.
5. Настройка переменных окружения
К сожалению, инсталлятор Java не выполняет настройку переменных окружения, поэтому придётся сделать это вручную после установки.
Во-первых, необходимо установить переменную JAVA_HOME , которая должна указывать на директорию, в которую установлена Java. Многие программы используют эту переменную, чтобы определить, где находится Java.
Во-вторых, надо в переменную PATH добавить путь к директории %JAVA_HOME%\bin . Эта переменная указывает операционной системе список директорий, в которых нужно искать исполняемые файлы, и чтобы можно было запускать Java из консоли, переменная PATH должна быть правильно настроена.
Для установки переменных окружения сначала нужно открыть свойства компьютера, либо использовав сочетание клавиш Win-Pause, либо через меню “Пуск”:

Затем нужно выбрать “Дополнительные параметры системы”, в открывшемся диалоге перейти на вкладку “Дополнительно” и нажать кнопку “Переменные среды”, после чего появится диалог настройки переменных окружения.

Если у вас уже есть переменная окружения JAVA_HOME — надо её отредактировать, если нет — создать новую. В качестве значения нужно указать путь к директории, куда установлена Java, то есть, например c:\Program Files\Java\jdk1.8.0_25\ , если вы установили JDK, либо c:\Program Files\Java\jre1.8.0_25\ , если вы установили только JRE.
После того, как вы установили значение переменной JAVA_HOME , необходимо отредактировать значение переменной PATH, добавив туда путь к директории, где находятся исполняемые файлы Java, то есть %JAVA_HOME%\bin

И сохранить всё это, закрыв все открытые диалоги в обратном порядке кнопками OK.
Обратите внимание, что если вы устанавливаете JDK, то в названии директории указывается номер версии, поэтому впоследствии, когда вы решите установить более новую версию, не забудьте поменять значение переменной окружения JAVA_HOME .
После того, как вы изменили переменные окружения, новые значения будут действительны только для новых запускаемых программ, уже запущенные программы не узнают о том, что переменные окружения поменялись. Поэтому если вы, например, пытались запустить Java из консоли и у вас не получилось из-за неправильных настроек переменной PATH , вам придётся перезапустить консоль после того, как вы поменяли значение переменной.
6. Удаление лишних файлов
Запустите консоль ( cmd ) и выполните в ней команду where java .
В результате вы должны увидеть путь к исполняемому файлу java.exe , который операционная система должна успешно обнаружить в том месте, куда вы установили Java. Если файл не нашёлся — значит неправильно настроена переменная PATH и нужно вернуться к предыдущему пункту.
Однако иногда бывает и наоборот, находятся «лишние» исполняемые файлы:

Происходит это из-за того, что инсталлятор Java вместо того, чтобы правильно настроить переменные окружения, пытается положить исполняемые файлы в директорию C:\Windows\system32
Это не очень хорошо — засоряется системная директория, может возникнуть рассогласование версий Java (в разных директориях разные версии). Поэтому надо удалить из каталога C:\Windows\system32 исполняемые файлы java.exe , javaw.exe и javaws.exe , если они там обнаружатся.
Вот и всё, теперь можно пользоваться Java. Только не забывайте о том, что после установки новой версии надо будет обновить переменную окружения JAVA_HOME !

November 20
2014
Автор: Алексей Баранцев
Если вам понравилась эта статья, вы можете поделиться ею в социальных сетях (кнопочки ниже), а потом вернуться на главную страницу блога и почитать другие мои статьи.
Ну а если вы не согласны с чем-то или хотите что-нибудь дополнить – оставьте комментарий ниже, может быть это послужит поводом для написания новой интересной статьи.
Виртуальная машина Java
В этой статье мы расскажем, что такое виртуальная машина Java и как ее установить.
Что такое виртуальная машина Java и для чего она нужна
Виртуальная машина Java (JVM) — это ключевой компонент платформы Java. С ее помощью можно запускать программы Java и продукты, написанные с применением байт-кода. А также она помогает управлять ресурсами программ во время их выполнения.
Перед тем как мы будем подробнее рассматривать виртуальную машину, разберем, что такое байт-код.
Сам по себе процессор — это сложный калькулятор. У него есть множество ячеек памяти, между которыми проводятся различные математические и байтовые операции. Как проводить каждую операцию, какой будет последовательность действий и какие данные нужны для операции ― всё это записано в машинном коде. Машинный код — это единственный язык, который понимает процессор любого компьютера.
Если бы все процессоры работали с помощью одинаковых машинных кодов, при разработке программ не нужно было подстраиваться под каждую систему. Достаточно было бы выучить один «машинный язык» и с его помощью удалось бы общаться со всеми процессорами. Однако в реальности процессоры «говорят» на разных языках. Языки могут отличаться:
- архитектурой CISC и RISC,
- длиной команд,
- режимом адресации,
- сложностью кодировок инструкций.
Из-за этих различий программы, созданные для одной архитектуры (или одного поколения процессоров), не работают на другой. Поэтому разработчикам приходится перекомпилировать программы для работы на других компьютерах.
Чтобы решить эту проблему, был создан байт-код — своеобразный промежуточный код между машинными языками. Прочитать байт-код может виртуальная машина Java.
Когда вы запускаете приложение Java на компьютере, байт-код программы попадает на JVM. Интерпретатор в виртуальной машине компилирует байт-код программы в понятный для процессора машинный код. Таким образом, одна программа, созданная на Java, может открываться на разных процессорах.
Как установить виртуальную машину Java
Существует два продукта, с помощью которых можно создать ВМ:
- Java Runtime Environment (JRE) ― виртуальная машина и API. Подходит, если вы хотите использовать готовые программы на Java.
- Java Development Kit (JDK) ― виртуальная машина, API и средства разработки программ на Java. Нужна тем, кто планирует писать свои Java-программы.
Как установить JRE
Чаще всего JRE уже есть на многих устройствах. Поэтому перед тем как устанавливать JRE проверьте, есть ли она на устройстве. Для этого зайдите в терминал и введите команду:
java -version
Команда для всех операционных систем одинаковая. Если на вашем устройстве установлена Java, перед вами появится сообщение о версии программы:

Если нет, то в сообщение будет ошибка или система скажет, что не знает такой команды. В таком случае вам понадобится установить JRE самостоятельно.
Установка ВМ на разных операционных системах похожа. В качестве примера покажем установку на macOS.

В зависимости от вашей операционной системы загрузите установочный файл с официального сайта. Например, если вам нужна виртуальная машина Java для Windows 10 x64, выберите пункт, показанный на картинке ниже:

Откройте папку со скачанным файлом и дважды кликните по нему:

Так как файл скачан из интернета, система попросит у вас разрешение на установку:

Затем система попросит ввести пароль пользователя. Введите его и нажмите OK:

Нажмите Install:
Затем пройдите по подсказкам на экране.
Готово, вы установили Java.
Как установить JDK
Скачайте установочный файл с официальной страницы.

Запустите установку:

Нажмите Продолжить:

Нажмите Установить:

Готово, программа установлена. Нажмите Закрыть:
Помогла ли вам статья?
Спасибо за оценку. Рады помочь
Java (Русский)
Состояние перевода: На этой странице представлен перевод статьи Java. Дата последней синхронизации: 23 декабря 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
- Java Package Guidelines
- Шрифты окружения Java Runtime
Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Разработка ведётся сообществом, организованным через Java Community Process, язык и основные реализующие его технологии распространяются по лицензии GPL. Права на торговую марку принадлежат корпорации Oracle.
Arch Linux официально поддерживает OpenJDK, свободную реализацию Java SE, версий 8, 11, 17 и 21. Эти версии можно без проблем установить одновременно, а также переключаться между ними с помощью скрипта archlinux-java . Несколько других реализаций доступны в AUR, но они не поддерживаются официально.
Установка
- Официально поддерживается только OpenJDK.
- После установки окружение Java должно быть определено в переменной $PATH , что можно сделать с помощью команды source /etc/profile , повторного входа в среду рабочего стола или перезагрузки.
Существуют два главных пакета, которые являются зависимыми: java-runtime-common (содержит основные файлы для Java Runtime Environment — JRE) и java-environment-common (содержит основные файлы для Java Development Kit — JDK). Переменная окружения $PATH в файле /etc/profile.d/jre.sh указывает на каталог /usr/lib/jvm/default/bin , заданный скриптом archlinux-java .
Ссылки /usr/lib/jvm/default и /usr/lib/jvm/default-runtime следует менять только при помощи скрипта archlinux-java . Эти ссылки ведут на выбранное рабочее окружение Java в /usr/lib/jvm/java-$ или JRE — /usr/lib/jvm/java-$/jre .
Большинство исполняемых файлов Java находятся в /usr/bin , остальные доступны через $PATH . Скрипт /etc/profile.d/jdk.sh больше не предоставляется ни одним из пакетов.
OpenJDK
OpenJDK — свободная реализация Java Platform, Standard Edition (Java SE), являющаяся референсной реализацией. Существуют также и другие сборки, например, Adoptium (ранее AdoptOpenJDK) или Amazon Corretto, но они не выложены в официальные репозитории. Пакет OpenJDK собирается из последнего состояния репозитория исходного кода OpenJDK.
Headless JRE минимальная среда выполнения для Java; не поддерживает GUI. Full JRE полная среда выполнения, поддерживающая GUI и зависящая от headless JRE. JDK Java Development Kit; необходим для разработки Java-приложений и зависит от full JRE.
| Версия | Headless JRE | Full JRE | JDK | Документация | Исходный код |
|---|---|---|---|---|---|
| OpenJDK 21 | jre-openjdk-headless | jre-openjdk | jdk-openjdk | openjdk-doc | openjdk-src |
| OpenJDK 17 | jre17-openjdk-headless | jre17-openjdk | jdk17-openjdk | openjdk17-doc | openjdk17-src |
| OpenJDK 11 | jre11-openjdk-headless | jre11-openjdk | jdk11-openjdk | openjdk11-doc | openjdk11-src |
| OpenJDK 8 | jre8-openjdk-headless | jre8-openjdk | jdk8-openjdk | openjdk8-doc | openjdk8-src |
OpenJDK GA — свежая сборка OpenJDK General-Availability Release от Oracle.
OpenJDK EA — свежая сборка OpenJDK Early-Access от Oracle.
icedTea-Web — Java Web Start и устаревший плагин Java для браузеров.
OpenJFX
OpenJFX — свободная реализация JavaFX. Данный пакет включён в Oracle JRE/JDK и требуется к дополнительной установке лишь пользователям OpenJDK.
| Версия | Runtime и Development Kit | Документация | Исходный код |
|---|---|---|---|
| OpenJFX 21 | java-openjfx AUR | java-openjfx-doc AUR | java-openjfx-src AUR |
| OpenJFX 17 | java17-openjfx | java17-openjfx-doc | java17-openjfx-src |
| OpenJFX 11 | java11-openjfx AUR | java11-openjfx-doc AUR | java11-openjfx-src AUR |
| OpenJFX 8 | java8-openjfx AUR | java8-openjfx-doc AUR | java8-openjfx-src AUR |
OpenJFX GA — свежая сборка OpenJFX General-Availability Release от Gluon.
OpenJFX EA — свежая сборка OpenJFX Early-Access от Gluon.
Другие реализации
Oracle JDK — проприетарная реализация JRE от Oracle, версии до 17 требуют пакета, доступного только после входа в аккаунт Oracle.
Eclipse Adoptium/Temurin/AdoptOpenJDK — реализация JRE/JDK от Eclipse, основана на Hotspot JVM.
OpenJ9 — JRE от Eclipse, созданная при участии IBM.
IBM Certified — IBM Semeru Runtime Certified Edition.
IBM J9 — реализация JRE 7 и 8 от IBM.
Примечание: 32-битные версии Oracle JDK имеют префикс bin32- , например, bin32-jre AUR . Они используют java32-runtime-common AUR , работая с java-runtime-common вместе с суффиксом 32 , например, java32 . То же самое происходит и с java32-environment-common AUR , который используется только 32-битными пакетами JDK.
Инструменты для разработки
См. List of applications#Integrated development environments для получения списка IDE (в частности, секцию Java IDEs).
Чтобы усложнить процесс реверс-инжиниринга, можно воспользоваться обфускатором proguard AUR .
Декомпиляторы
- Bytecode Viewer — пакет для обратного инжиниринга Java-приложений, включающий в себя декомпилятор, редактор и дебаггер.
- CFR — декомпилятор Java, поддерживающий также новые возможности Java 9 и выше.
- Fernflower — аналитический декомпилятор Java-приложений, разработанный для IntelliJ IDEA.
- Java Decompiler (JD-Core, JD-GUI) — JD Decompiler, популярный декомпилятор, поддерживающий версии Java 1-10.
- Krakatau — декомпилятор, ассемблер и дизассемблер для Java.
- Procyon decompiler — экспериментальный декомпилятор Java, разработанный под влиянием ILSpy и Mono.Cecil.
- Recaf — простой и современный редактор байт-кода, абстрагирующийся от сложности программ на Java
Переключение между средами
Скрипт archlinux-java предусматривает следующие возможности:
archlinux-java COMMAND: status список установленных окружений Java и их статус get короткое название текущего окружения Java set устанавливает окружение по умолчанию unset сбрасывает текущее окружения Java по умолчанию fix исправляет ошибки конфигурации окружения Java, выбранного по умолчанию
Получение списка установленных совместимых сред Java
$ archlinux-java status
$ archlinux-java status
Available Java environments: java-8-openjdk (default) java-11-openjdk/jre
Метка (default) как раз и подписывает окружение, установленное по умолчанию. Выполнение java или других команд будет ссылаться на эту версию. Отметка /jre означает, что установлен только JRE.
Установка среды Java по умолчанию
# archlinux-java set
# archlinux-java set java-8-openjdk/jre
Совет: Используйте команду archlinux-java status для отображения списка всех доступных сред Java.
Обратите внимание, что archlinux-java не позволит задать некорректную среду Java. В предыдущем примере была использована установленная среда jre8-openjdk , а, к примеру, указание неустановленной среды jdk8-openjdk завершилось бы следующей ошибкой:
# archlinux-java set java-8-openjdk
'/usr/lib/jvm/java-8-openjdk' is not a valid Java environment path
Сброс среды Java по умолчанию
Как правило, необходимость в сбросе среды по умолчанию отсутствует, так как данный механизм заложен в соответствующие пакеты. Если же возникла такая необходимость, воспользуйтесь командой unset :
# archlinux-java unset
Исправление конфигурации используемой среды Java
Если на какое-нибудь окружение Java задана неверная ссылка, команда archlinux-java fix попытается найти и исправить ошибку. Также эта команда задаст окружение по умолчанию, если оно отсутствует (официально поддерживаемое окружение OpenJDK 8 имеет наивысший приоритет).
# archlinux-java fix
Запуск приложений с не установленным по умолчанию окружением
Если в системе установлено несколько окружений и необходимо запустить приложение с использованием среды не установленной по умолчанию, можно создать небольшой скрипт, локально изменяющий PATH . Например, если по умолчанию используется JRE 17, а необходимо воспользоваться JRE 11:
#!/bin/sh export PATH="/usr/lib/jvm/java-11-openjdk/bin/:$PATH" exec /путь/к/приложению "$@"
Требования к пакетам сред для поддержки archlinux-java
Примечание: Информация применима и к archlinux32-java , при отличии, что в названиях пакетов используется верное наименование с 32 (см. выше).
Этот раздел предназначен для тех, кто хочет распространять свои пакеты JVM в AUR и использовать для управления archlinux-java . Пакеты должны соответствовать всем пунктам ниже:
- все файлы пакета располагаются по адресу /usr/lib/jvm/java-$-$
- все исполняемые файлы для java-runtime-common и java-environment-common имеют соответствующие ссылки
- исполняемые файлы, не принадлежащие к java-runtime-common и java-environment-common, имеют ссылки из /usr/bin
- суффиксы манов такие: -$$ ; например, смотрите список файлов jre8-openjdk, где они имеют суффиксы -openjdk8
- не используется ни PKGBUILD conflicts, ни PKGBUILD replaces с другими JDK, java-runtime , java-runtime-headless или java-environment
- используется скрипт archlinux-java , чтобы устанавливать окружение по умолчанию, если ни одно другое окружение не задано — то есть не перезаписывается значение по умолчанию. Смотрите список официально поддерживаемых окружений Java для примера
Стоит принять во внимание и эти советы:
- пакеты, которым нужно окружение Java должны объявить зависимости java-runtime , java-runtime-headless или java-environment
- пакеты, которым нужно определённое окружение Java должны объявить зависимости с необходимым суффиксом
- пакеты OpenJDK объявляют provides=»java-runtime-openjdk=$» , что позволяет стороннему пакету объявлять зависимость от OpenJDK без указания версии
Решение проблем
Не подключается MySQL
В связи с тем, что драйверы JDBC часто используют порт в URI для установления соединения с базой данных, он считается «удалённым» (т. е. MySQL не прослушивает порт в соответствии с его настройками по умолчанию), несмотря на то, что, возможно, они работают на одном хосте. Таким образом, чтобы использовать JDBC и MySQL, вы должны разрешить удаленный доступ в MySQL; смотрите инструкцию в статье MariaDB#Grant remote access.
Не запускается IntelliJ IDEA
Если IntelliJ IDEA вылетает с ошибкой The selected directory is not a valid home for JDK , придётся установить другую JDK или использовать IntelliJ IDEA с JetBrains Runtime.
Ошибки отрисовки приложений Java
В оконных менеджерах Awesome, Dwm и Ratpoison возникают ошибки отрисовки GUI в Java, появляются серые окна, приложения не изменяют размер, меню мгновенно закрываются. Для того, чтобы JVM думала, что используется оконный менеджер, отличный от установленного, используется wmname . Задайте поддельное название оконного менеджера, например, compiz или LG3D
$ wmname compiz
После выполнения команды нужно перезапустить приложение Java. Такое поведение обосновано тем, что в JVM прямо установлены известные оконные менеджеры, которые используют подход non-re-parenting.
Если установка поддельного оконного менеджера не применима, есть несколько советов:
- для jre8-openjdk добавьте строчку export _JAVA_AWT_WM_NONREPARENTING=1 в /etc/profile.d/jre.sh , затем выполните source этого файла или перезайдите
- для свежих JVM работает добавление export AWT_TOOLKIT=MToolkit в ~/.xinitrc перед командой запуска оконного менеджера
- для пакетов Oracle можно использовать SetWMName, однако, положительный эффект может быть сброшен при использовании пакета XMonad.Hooks.EwmhDesktops в приложении. В этом случае может помочь добавление строчки >> setWMName «LG3D» к LogHook
- для sway добавьте export _JAVA_AWT_WM_NONREPARENTING=1 .
Неразборчивый шрифт в приложениях Java
Некоторые шрифты не читаются, поэтому следует установить другие, читаемые шрифты, например, ttf-ms-fonts AUR .
В некоторых приложениях отсутствует текст
Далее в разделе #Улучшенное отображение шрифтов приводятся параметры; см. также FS#40871.
Система зависает при дебаггинге
Используйте параметр JVM -Dsun.awt.disablegrab=true . Смотрите также страницу бага в JDK 6.
Конструктор JavaFX MediaPlayer вылетает с ошибкой
При создании экземпляра класса MediaPlayer может появиться такая ошибка:
. (i.e. FXMLLoader construction exceptions) . Caused by: MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player! at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146) at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511) at javafx.scene.media.MediaPlayer.(MediaPlayer.java:414) at .
это связано с несовеместимостью JavaFX и ffmpeg из репозитория, поэтому следует установить ffmpeg-compat-55 AUR . См. также обсуждение на Reddit.
В приложениях Java не открываются внешние ссылки
Установите gvfs ; в приложении требуется реализовать метод Desktop.Action.BROWSE . См. также обсуждение на Launchpad.
Ошибка инициализации QuantumRenderer : no suitable pipeline found
Либо отсутствует GTK2 — установите gtk2 , либо отсутствует OpenJFX — установите java-openjfx AUR .
Советы и рекомендации
Примечание: Предложения в этом разделе применимы ко всем приложениям, использующим явно установленную (внешнюю) среду выполнения Java. Некоторые приложения связаны с собственной средой выполнения или используют собственную механику для графического интерфейса пользователя, рендеринга шрифтов и т. д., поэтому ни один из нижеприведённых советов не будет работать гарантированно.
Поведение большинства приложений Java можно контролировать, предоставляя предопределённые переменные для среды выполнения Java. Для этого нужно добавлять строчки в ~/.bash_profile или /etc/profile.d/jre.sh .
export JDK_JAVA_OPTIONS
Например, предопределённое использование сглаженных шрифтов и GTK:
export JDK_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
Java воспринимает указанные ниже переменные окружения при запуске приложений (расположены в порядке повышения приоритета).
| JAVA_TOOL_OPTIONS | Влияет на приложения и на некоторые утилиты (например, javac или jshell ). |
| JDK_JAVA_OPTIONS | Влияет на приложения (запущенные через команду java ). Добавлена в Java 9. |
| (аргументы командной строки) | Аргументы, указанные после названия класса Java передаются в приложение. |
| _JAVA_OPTIONS | Устаревшая переменная, влияет и на приложения, и на утилиты. |
Улучшенное отображение шрифтов
Установите параметры JVM -Dawt.useSystemAAFontSettings=on , -Dswing.aatext=true . См. статью Java Runtime Environment fonts
Скрытие сообщения ‘Picked up JDK_JAVA_OPTIONS’
При установке какого-либо параметра JVM появляется сообщение вида Picked up JDK_JAVA_OPTIONS=. . Чтобы избавиться от сообщения, можно удалить эту переменную окружения, а вместо неё передать параметры через аргументы командной строки. Добавьте эти строки в ~/.bashrc :
SILENT_JAVA_OPTIONS="$JDK_JAVA_OPTIONS" unset JDK_JAVA_OPTIONS alias java='java "$SILENT_JAVA_OPTIONS"'
Оформление GTK
Установите параметры JVM
swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Некоторые приложения используют кроссплатформенный вид Metal ; чтобы переопределить его, используйте параметр JVM
swing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Поддержка GTK 3
В версиях, предшествующих Java 9 использовался вид GTK 2. Эта несовместимость между версиями GTK может нарушить работу приложений, использующих плагины Java с графическим интерфейсом, поскольку смешивание GTK 2 и GTK 3 в одном и том же процессе не поддерживается (например, LibreOffice 5.0). Начиная с Java 9 можно выбрать GTK 2 , 2.2 или 3 , но по умолчанию используется GTK 3; чтобы задать приоритет используйте параметр JVM
jdk.gtk.version=2.2
Ускорение отрисовки 2D
Если доступно использование OpenGL, его можно включить в приложениях Java, задав переменную окружения
export JDK_JAVA_OPTIONS='-Dsun.java2d.opengl=true'
Примечание: Включение этого параметра может привести к неправильной работе пользовательского интерфейса таких программ, как все IDE от JetBrains, из-за чего они частично отрисовывают окна, всплывающие окна и панели инструментов.
Retrieved from «https://wiki.archlinux.org/index.php?title=Java_(Русский)&oldid=789972»
- Programming languages (Русский)
- Oracle (Русский)