hostprofi.ru
Подобрать хостинг
Термин·буква J

JDK

краткое определение

JDK (Java Development Kit) — комплект инструментов для разработки Java-приложений. Включает JVM (виртуальную машину Java), компилятор javac, стандартную библиотеку и утилиты. Без JDK или JRE Java-приложение запустить невозможно.

JDK (Java Development Kit) — полный набор инструментов для создания, компиляции и запуска Java-приложений. Включает: компилятор javac, JVM (Java Virtual Machine), JRE (Java Runtime Environment), стандартную библиотеку (rt.jar / jmods), отладчик jdb, документационный генератор javadoc и другие утилиты.

Архитектура Java-стека

JDKJREJVM. JVM — виртуальная машина, исполняющая байт-код (.class-файлы). JRE — JVM плюс стандартные библиотеки для запуска приложений (без инструментов разработки). JDK — JRE плюс компилятор и инструменты разработки.

Java-код компилируется в платформенно-независимый байт-код. JVM транслирует байт-код в нативные инструкции процессора через JIT (Just-In-Time компиляцию). Это обеспечивает принцип WORA (Write Once, Run Anywhere) — один и тот же .jar-файл запускается на Linux, Windows и macOS.

История

Java разработана командой Sun Microsystems под руководством Джеймса Гослинга. JDK 1.0 выпущен 23 января 1996 года. В 2006 году Sun открыла исходный код Java (OpenJDK). В 2010 году Oracle приобрела Sun. С Java 11 (2018) Oracle перешла на 6-месячный цикл релизов и платную коммерческую поддержку Oracle JDK. OpenJDK — бесплатная альтернатива. Adoptium (Eclipse), Amazon Corretto, Microsoft OpenJDK — бесплатные дистрибутивы OpenJDK.

Связь с хостингом

Java-приложения (Spring Boot, Jakarta EE, Tomcat) требуют JDK или JRE на сервере. На VPS под Ubuntu: sudo apt install openjdk-17-jdk. Spring Boot приложения запускаются как fat-jar: java -jar app.jar. Tomcat и JBoss — контейнеры сервлетов, устанавливаемые отдельно. На большинстве виртуальных хостингов Java недоступна — требуется VPS.

JDK, JRE и JVM

JDK (Java Development Kit) = JRE + компилятор javac + инструменты (jmap, jstack, jconsole). JRE (Java Runtime Environment) = JVM + стандартные библиотеки. JVM (Java Virtual Machine) исполняет байт-код. Для production-сервера достаточно JRE; для компиляции — JDK.

Версии JDK и LTS

LTS-версии: Java 11 (2018), Java 17 (2021), Java 21 (2023). Java 21 — текущий LTS. Oracle JDK — платный для production; OpenJDK — бесплатный, функционально идентичен. Adoptium (Eclipse) и Amazon Corretto — популярные дистрибутивы OpenJDK.

JVM в хостинге

Настройка памяти: -Xms512m -Xmx2g (начальная и максимальная куча). G1GC — сборщик мусора по умолчанию в Java 9+. Мониторинг JVM: jconsole, Prometheus + micrometer. Типичные приложения на Java: Apache Tomcat, Elasticsearch, Kafka, Jenkins.

GraalVM Native Image

GraalVM Native Image компилирует Java в нативный бинарь: мгновенный старт (ms vs секунды), меньше RAM. Quarkus и Micronaut поддерживают native image. Spring Boot 3+ — Native Support через AOT. Для serverless и Kubernetes с частым масштабированием — native image снижает cold start.

JVM Tuning в production

G1GC параметры: -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m. ZGC (Java 15+): pauseless GC, <1 мс паузы. GC лог: -Xlog:gc*:file=/var/log/app/gc.log:time:filecount=5,filesize=20m. JVM Heap Analysis: Eclipse MAT, VisualVM. jstack для thread dump при зависании.

Другие термины

JDK — что это, определение и как работает | Справочник — hostprofi.ru