Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64)
![]()
Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64) это программное обеспечение Shareware в категории (2), разработанная Eclipse Foundation.
Проверяли обновления 94 раз пользователями нашего клиентского приложения UpdateStar в прошлом месяце.
Последняя версия Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64) в настоящее время неизвестна. Первоначально он был добавлен в нашу базу данных на 19.08.2021.
Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64) работает на следующих операционных системах: Windows.
Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64) не был оценен нашими пользователями еще.
Написать обзор для Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64)!
Установки
94 пользователи UpdateStar были установлены в прошлом месяце Eclipse Temurin JDK avec Hotspot 11.0.12+7 (x64).
Последние обновления
| 09.01.2024 | SyncBackSE 11.2.33.0 |
| 03.12.2023 | JAlbum 33.3 |
| 08.01.2024 | Fake Webcam 7.4.736 |
| 05.12.2023 | ZOC 8.07.3 |
| 09.01.2024 | ReplaceMagic ProjectOnly Professional 2024.1.1 |
Установите Temurin OpenJDK 17 на CentOS 7 | RHEL 7 | Oracle Linux 7 |
Java — один из широко используемых языков программирования в мире. AdoptOpenJDK, также известный как Eclipse Temurin, — это Java с открытым исходным кодом, основанная в 2017. > после продолжительной дискуссии по поводу отсутствия системы тестирования и открытого исходного кода для OpenJDK. Группа Eclipse Adoptium взяла на себя эту задачу с основной целью создания высококачественной, сертифицированной TCK технологии и среды выполнения для использования в экосистеме Java. С момента своего создания компания AdoptOpenJDK значительно выросла и в настоящее время является ведущим поставщиком двоичных файлов на основе OpenJDK, которые можно использовать на настольных компьютерах, современных облачных платформах, традиционных серверах, корпоративных встроенных системах или даже мэйнфреймах. Этот успех был достигнут благодаря множеству проектов, а также тесному партнерству с внешними проектами, например OpenJDK, для обеспечения необходимой реализации среды выполнения Java SE.
AdoptOpenJDK можно установить на различные платформы, такие как Windows, macOS, Linux и многие другие. В этом руководстве подробно показано, как установить Temurin OpenJDK 17 на CentOS 7 | РЭЛ 7 | Оракул Линукс 7
Начиная.
Обновите системные пакеты до последних стабильных версий.
sudo yum update -y
Установите необходимый пакет и перезагрузите систему, чтобы внесенные изменения вступили в силу.
sudo yum -y install wget curl
1. Загрузите двоичный файл Temurin OpenJDK 17.
Чтобы загрузить двоичный файл Temurin OpenJDK 17, посетите страницу загрузок Adoptium. Вы также можете выбрать получение двоичного файла с помощью Wget, как показано.
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.2_8.tar.gz
После успешной загрузки извлеките архив.
tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz rm -f OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
2. Установите Temurin OpenJDK 17 на CentOS 7 | РЭЛ 7 | Оракул Линукс 7
Чтобы установить Temurin OpenJDK 17, мы просто переместим извлеченный файл, указанный выше, в каталог /opt/ .
sudo mv jdk-17.* /opt/jdk-17
Установите переменные среды JAVA_HOME, как показано ниже.
$ vi ~/.bashrc export JAVA_HOME=/opt/jdk-17 export PATH=$PATH:$JAVA_HOME/bin
source ~/.bashrc
Проверьте установленный PATH.
$ echo $JAVA_HOME /opt/jdk-17
Вот и все, вы установили Temurin OpenJDK 17 на CentOS 7 | РЭЛ 7 | Oracle Linux 7. Проверьте установку с помощью команды ниже.
$ java --version openjdk 17.0.2 2022-01-18 OpenJDK Runtime Environment Temurin-17.0.2+8 (build 17.0.2+8) OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)
Установите постоянную переменную среды JAVA_HOME.
Установка переменной среды JAVA_HOME с использованием описанного выше метода не является постоянной и теряется при перезагрузке системы. Однако вы можете сделать это постоянным, добавив PATH в /etc/profile.
$ sudo vi /etc/profile export JAVA_HOME=/opt/jdk-17 export PATH=$PATH:$JAVA_HOME/bin
Примените внесенные изменения, выйдя из системы и войдя снова, либо воспользовавшись профилем.
source /etc/profile
Проверьте установленный PATH.
$ echo $JAVA_HOME /opt/jdk-17
3. Установите версию Java по умолчанию в CentOS 7 | РЭЛ 7 | Оракул Линукс 7
Если в вашей системе установлено несколько версий Java, вам необходимо установить версию Java по умолчанию, которая будет использоваться при запуске приложений Java.
Сначала добавьте Temurin OpenJDK 17 в путь /usr/bin/java.
sudo alternatives --install /usr/bin/java java /opt/jdk-17/bin/java 1
Перечислите доступные установки Java.
sudo alternatives --config java
There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64/bin/java) 2 /opt/jdk-17/bin/java Enter to keep the current selection[+], or type selection number: 2
Мы установили Java по умолчанию — Temurin OpenJDK 17. Проверьте это, как показано ниже.
$ java -version openjdk version "17.0.2" 2022-01-18 OpenJDK Runtime Environment Temurin-17.0.2+8 (build 17.0.2+8) OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)
4 – Тест Темурина OpenJDK 17
После установки нам необходимо проверить, правильно ли работает установка Java. Мы создадим образец файла, как показано ниже.
cat > HelloWorld.java > EOF
Это пример приложения HelloWorld. Скомпилируйте его, как показано ниже.
java HelloWorld.java
$ java HelloWorld.java Hello Java World from Kenya! Temurin OpenJDK is amazing!
Я надеюсь, что это руководство по установке Temurin OpenJDK 17 на CentOS 7 | РЭЛ 7 | Oracle Linux 7 произвел впечатление.
Подробнее смотрите на этой странице:
- Установите Java 17 (OpenJDK 17) в Fedora.
- Установите Java 17 (OpenJDK 17) в Debian
Так много JDK… Какой использовать и чем это грозит?
От переводчика: Решение перевести эту статью пришло не само собой — скорее это вынужденная мера :). К нам, как к вендорам фреймворка CUBA, обращаются с этим вопросом с завидной регулярностью. Безусловно, для нас это тоже крайне важная тема, и в ответ на последние изменения мы подняли тестовые стенды как на Oracle JDK, так и на Liberica JDK — эта мера на данный момент ограждает наших пользователей от непредвиденных лицензионных трат. Однако, эта тема еще не закрыта, и мы продолжаем внимательно следить за развитием событий, и, кто знает, возможно нам придется добавлять стенды для еще каких сборок JDK уже в следующем году.
Статья под катом подкупает тем, что она лаконично описывает проблематику и наиболее популярные JDK с их особенностями.
Недавно Oracle заявили, что эволюция Java кардинально изменится благодаря переходу на «Release Train» — новому подходу к выкатыванию версий. Это изменение также повлекло за собой перемены в плане поддержки версий, которая теперь будет осуществляться не для всех, а только для LTS версий. Сообщество Java чемпионов разъяснило вводимые новшества, детальный документ доступен в сети.
Даже с учетом этих новостей остаются вопросы: какие билды JDK сейчас доступны? Будут ли они бесплатными или коммерческими? Прежде чем ответить на этот вопрос, важно понять, какие требования предъявляются к JDK как продукту. Фактически, есть только один основной исходный код JDK. Он находится здесь. Кто угодно может использовать исходный код для построения собственной сборки и размещения ее где-то в сети. Однако есть отдельная процедура сертификации, которая должна быть пройдена, чтобы сборка JDK считалась валидной. Сертификация осуществляется Java Community Process (JCP), который предоставляет Technology Compatibility Kit (TCK). Если какая-либо организация создает новую сборку OpenJDK, которая отвечает TCK, она считается «совместимой с Java SE».
Имейте в виду, что сборка не может называться «Java SE», если компания, осуществившая сборку, не приобрела коммерческую лицензию от Oracle. Например, сборки AdoptOpenJDK, которые проходят TCK, не являются «Java SE», но являются «Java SE compliant». Также нужно учитывать, что сертификация сейчас основывается “на честном слове” — результаты не отсылаются в JCP/Oracle для верификации и являются закрытой информацией. Короче говоря, каждый вендор, взявший исходники OpenJDK и собравший версию, порождает еще одну отдельную сборку JDK.

Итак, без лишних слов, рекомендуем ознакомиться со следующими готовыми к использованию JDK:
Oracle JDK
Это главный поставщик Java 11 (релиз уже состоялся). Это коммерческая версия с платной поддержкой. Ее можно бесплатно скачивать и использовать только непосредственно для разработки. Использовать ее в продакшене, не заплатив Oracle, нельзя (так что для многих не интересующихся вопросами лицензирования это ловушка). Oracle планирует предоставлять платную поддержку до 2026 года и далее. В отличие от того, как было раньше, сборка Oracle JDK ничем не “лучше” OpenJDK (по стольку по скольку оба находятся на одном и том же уровне security patch level).
OpenJDK Build от Oracle
Существует бесплатные не-брендовые версии OpenJDK, распространяемые по лицензии GPL с Classpath Extension (подходит для коммерческого применения). Эти версии сборки доступны только в течение 6 месяцев после релиза. Для Java 11 ожидается выход версии Java 11.0.0 и два security -патча, 11.0.1 и 11.0.2. Чтобы продолжать использование версии OpenJDK и его патчей от Oracle, необходимо перейти на Java 12 не позднее, чем через месяц после запуска. Обратите внимание, что порядок обеспечения security-патчей отличается от порядка предоставления поддержки, которая включает в себя оплату обработки отчетов об ошибках.
AdoptOpenJDK
Это тоже бесплатные и не-брендовые сборки OpenJDK, распространяемые по лицензии GPL с Classpath Extension, только в отличие от билдов OpenJDK от Oracle эти версии сборки будут действовать в течение более длительного времени для основных версий, таких как Java 11. Версии Java 11 будут выпускаться в течение 4 лет через год после следующего основного релиза. AdoptOpenJDK ориентируется на сообщество. Пока другие команды создают и публикуют исправления безопасности для исходного репозитория OpenJDK, они будут выпускать билды. И IBM, и Red Hat обозначили, что намерены выпускать такие патчи.
AdoptOpenJDK OpenJ9
Вдобавок к стандартным сборкам OpenJDK AdoptOpenJDK будет также предоставлять версии с OpenJ9 вместо HotSpot. OpenJ9 изначально была JVM от IBM, но сейчас OpenJ9 имеет открытый исходный код. И, кстати говоря, эта опция наиболее достойная изучения.
Red Hat OpenJDK
Red Hat предоставляет версии сборки OpenJDK на Red Hat Enterprise Linux (RHEL), являющемся коммерческим продуктом с платной поддержкой. Red Hat очень неплохо справляются с исправлениями безопасности в OpenJDK. В прошлом Red Hat отвечали за security-апдейты Java 6 и 7. Сборка от Red Hat более интегрирована с операционной системой, так что ее нельзя назвать типичным билдом OpenJDK (отсутствует JDK конечного пользователя).
Azul Zulu
Zulu — брендированная версия OpenJDK с платной коммерческой поддержкой. К тому же, хотя Azul предоставляет некоторые элементы Zulu бесплатно в рамках «Zulu Community», они не несут никаких особых обязательств по доступности этих сборок. У Azul довольно масштабный план по поддержке Zulu, включающий поддержку Java 9, 13 и 15, в отличие от других поставщиков.
Amazon Corretto
Это новейшая из всех описанных опций. Corretto — бесплатная версия сборки OpenJDK с долгосрочной поддержкой, проходящая TCK. Она распространяется по стандартным условиям лицензирования всех версий OpenJDK: GPL + CE. Amazon создаст собственные патчи и запустят Corretto на AWS, так что он будет использоваться довольно активно (и уже добавлен в некоторые продукты). Поддержка Java 8 планируется по меньшей мере до июня 2023.
В процессе преобразования исходного OpenJDK в различные версии сборки производитель может добавлять различные утилиты или брендировать продукт, если это не препятствует сертификации (TCK). Например, нельзя добавить новый public-метод в API или новые языковые ресурсы.
Есть и другие реализации JDK, такие как IBM и SAPMachine. Однако эти версии сборки не так часто используются, поэтому они не упомянуты в этой статье. Более подробную информацию можно найти здесь и здесь.
Заключение
Лично я особой проблемы в наличие нескольких версий JDK не вижу, так как всем им нужно проходить сертификацию (TCK). Чем действительно стоит обеспокоиться — это использование одной из проприетарных JDK и бесплатной версии сборки от Oracle, во избежание головной боли в будущем. Если вы используете только базовые функции (например, ваш бизнес не особо зависит от секьюрити-апдейтов), вам больше подойдут сборки OpenJDK от Oracle (НЕ OracleJDK), т.к. они постоянно обновляются (в течение 6 месяцев после релиза), и вы можете использовать JDK в продакшене без особых проблем. Если в вашем бизнесе задействованы облачные сервисы (или с AWS), хорошим выбором будет AWS Corretto, который уже пригоден к использованию на Amazon Linux и Docker.
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 AUR | java17-openjfx-doc AUR | java17-openjfx-src AUR |
| 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=794159»
- Programming languages (Русский)
- Oracle (Русский)