Про версии oracle jdk 11+ (лицензирование и распространение)
Содержание:
Java Development Kit: что это?
Java SE Development Kit – это набор программного обеспечения, включающий в себя все инструменты, которые нужны программисту. Данный комплект состоит из следующих элементов:
- Компилятор Java. Утилита, превращающая программы, написанные на Java, в машинный код.
- Стандартные библиотеки классов Java. Набор готовых программных решений, которые можно использовать в своих разработках.
- Исполнительная система, документация, образцы кода и пр.
Стоит подметить, что стандартный набор разработчика не содержит в себе текстового редактора. То есть перед тем как пользоваться языком Джава и писать код, необходимо загрузить и установить стороннюю программу-редактор. Если говорить о текстовых редакторах, то можно порекомендовать NotePad++. Писать код в данной утилите удобно, так как там есть подсветка синтаксиса. Однако лучше сразу скачать полноценную среду разработки (IDE). Я порекомендовал бы вам установить Eclipse или же NetBeans.
Amazon Corretto
Это новейшая из всех описанных опций. Corretto — бесплатная версия сборки OpenJDK с долгосрочной поддержкой, проходящая TCK. Она распространяется по стандартным условиям лицензирования всех версий OpenJDK: GPL + CE. Amazon создаст собственные патчи и запустят Corretto на AWS, так что он будет использоваться довольно активно (и уже добавлен в некоторые продукты). Поддержка Java 8 планируется по меньшей мере до июня 2023.
В процессе преобразования исходного OpenJDK в различные версии сборки производитель может добавлять различные утилиты или брендировать продукт, если это не препятствует сертификации (TCK). Например, нельзя добавить новый public-метод в API или новые языковые ресурсы.
Есть и другие реализации JDK, такие как IBM и SAPMachine. Однако эти версии сборки не так часто используются, поэтому они не упомянуты в этой статье. Более подробную информацию можно найти здесь и здесь.
Trails Covering the Basics
The Java Tutorial,
Sixth Edition
-
Getting Started — An
introduction to Java technology and lessons on installing Java
development software and using it to create a simple program. -
Learning the Java Language
— Lessons describing the essential concepts and features of
the Java Programming Language. -
Essential Java Classes
— Lessons on exceptions, basic input/output, concurrency,
regular expressions, and the platform environment. -
Collections —
Lessons on using and extending the Java Collections Framework. -
Date-Time APIs — How to
use the java.time pages to write date and time code. -
Deployment — How to
package applications and applets using JAR files, and deploy them
using Java Web Start and Java Plug-in. -
Preparation for Java
Programming Language Certification — List of available
training and tutorial resources.
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-патчей отличается от порядка предоставления поддержки, которая включает в себя оплату обработки отчетов об ошибках
Specialized Trails and Lessons
These trails and lessons are only available as web pages.
-
Custom Networking —
An introduction to the Java platform’s powerful networking
features. -
The Extension Mechanism —
How to make custom APIs available to all applications running on
the Java platform. -
Full-Screen Exclusive
Mode API — How to write applications that more fully
utilize the user’s graphics hardware. -
Generics — An
enhancement to the type system that supports operations on objects
of various types while providing compile-time type safety. Note
that this lesson is for advanced users. The Java Language trail contains a Generics lesson that is suitable for
beginners. -
Internationalization — An
introduction to designing software so that it can be easily adapted
(localized) to various languages and regions. -
JavaBeans — The Java
platform’s component technology. -
JDBC Database Access —
Introduces an API for connectivity between the Java applications
and a wide range of databases and data sources. -
JMX— Java Management
Extensions provides a standard way of managing resources such as
applications, devices, and services. -
JNDI— Java Naming and
Directory Interface enables accessing the Naming and Directory
Service such as DNS and LDAP. -
JAXP — Introduces the Java
API for XML Processing (JAXP) technology. -
JAXB — Introduces the Java
architecture for XML Binding (JAXB) technology. -
RMI — The Remote Method
Invocation API allows an object to invoke methods of an object
running on another Java Virtual Machine. -
Reflection — An API that
represents («reflects») the classes, interfaces, and objects in the
current Java Virtual Machine. -
Security — Java
platform features that help protect applications from malicious
software. -
Sound — An API for playing
sound data from applications. -
2D Graphics — How to display
and print 2D graphics in applications. -
Sockets Direct Protocol —
How to enable the Sockets Direct Protocol to take advantage of
InfiniBand.
Наиболее распространенные ошибки
Неопытные программисты, написавшие пару строчек кода, не могут скомпилировать его через SDK. Дело в том, что компилятор выбивает сообщения об ошибках. Корень проблемы кроется в переменных окружениях. Дело в том, что инсталлятор не настраивает их для корректной работы. Загрузчик возлагает эту задачу на плечи программиста. Поэтому производить настройки нужно вручную.
В первую очередь необходимо разобраться с переменной JAVA_HOME. Она указывает на директорию, в которой располагается JDK. Кроме этого, надо изменить переменную PATH. Она указывает ОС на список папок, в которых могут располагаться файлы для исполнения. Чтобы все работало корректно, необходимо в PATH добавить запись %JAVA_HOME%\bin.
Дабы настроить переменные надо сделать следующее:
- Откройте окно под названием «Свойства системы». С помощью горячего комбо Win + R откройте системную утилиту «Выполнить». Введите и запустите команду sysdm.cpl.
- Там перейдите во вкладку «Дополнительно». После этого кликните на «Переменные среды», которая находится в правом нижнем углу окна.
- В случае если в появившемся окне уже присутствует JAVA_HOME, то ее значение надо поменять. Если же переменной нет, то просто создайте новую. Как значение укажите адрес, куда установлена Джава.
- Определив JAVA_HOME, нужно изменить и значение PATH. Добавьте туда адрес, по которому располагаются файлы для исполнения Джава кода (%JAVA_HOME%\bin).
Примечание. Не удаляйте другие значения. Просто добавьте туда запись %JAVA_HOME%\bin.
- Подтвердите новые параметры, нажав клавишу «ОК».
| Разработчик: | Oracle Corporation |
| Операционная система: | Windows 7, Windows 8, Windows 8.1, Windows 10, Linux, Mac OS |
| Язык программы: | Русский |
| Лицензия: | Бесплатно |
| Рейтинг: |
… но с некоторыми косметическими и упаковочными различиям
- Oracle JDK 11 выдаёт предупреждение при использовании опции , тогда как в OpenJDK эта опция приведёт к ошибке. Эта опция никогда не была частью OpenJDK, поэтому нет никакого смысла добавлять её, поскольку в OpenJDK нет коммерческих функций. Эта разница остаётся для того, чтобы пользователям Oralce JDK 10 или более ранних версий было проще перейти Oracle JDK 11 или более поздние версии.
- Oracle JDK 11 может быть сконфигурирована для предоставления лог-данных в инструмент Advanced Management Console, являющимся отдельным коммерческим продуктом Oracle. Мы будем работать с другими контрибьюторами OpenJDK над вопросом необходимости предоставления таких данных и пользы от них в OpenJDK в будущих версиях. Эта разница остаётся прежде всего для сохранения накопленного опыта клиентами Oracle.
- Команда ведёт себя по-разному для Java 9 и Java 10, поскольку в этих версиях Oracle JDK содержит некоторые дополнительные компоненты, которые не были частью соответствующих версий OpenJDK:
- javafx.base
- javafx.controls
- javafx.fxml
- javafx.graphics
- javafx.media
- javafx.web
- java.jnlp
- jdk.jfr
- jdk.management.cmm
- jdk.management.jfr
- jdk.management.resource
- jdk.packager.services
- jdk.snmp
Это отличие остаётся для сохранения совместимости в некоторых случаях легаси. Эти модули теперь либо доступны отдельно как часть OpenJFX, либо присутствуют в OpenJDK и в Oracle JDK, потому что они были коммерческими функциями, которые Oracle добавила в OpenJDK, либо были удалены из Oracle JDK 11 (например, JNLP).
- Вывод команд и будет отличаться между сборками Oracle JDK и OpenJDK, чтобы команды поддержки могли диагностировать любые возникающие проблемы. В частности, запуск со сборкой Oracle JDK 11 выведет:
И с OpenJDK 11: - Oracle JDK всегда требовал, чтобы сторонние криптографические провайдеры подписывались известным сертификатом. Криптография в OpenJDK имеет открытый интерфейс, это означает, что нет ограничения на используемый крипто-провайдер. Oracle JDK 11 будет продолжать требовать действительную подпись, а сборки OpenJDK будут по-прежнему разрешать использование стороннего крипто-провайдера как с действительной подписью, так и без подписи.
- Oracle JDK 11 будет по-прежнему включать инсталляторы, брэндирование и JRE для совместимости с настольными легаси-приложениями. Сейчас сборки OpenJDK доступны в виде zip и tar.gz файлов, в то же время рассматриваются альтернативные форматы для распространения.