Skip to content
EN
← Все статьи

Что такое Java и чем она отличается от JavaScript

Два монитора: слева среда разработки с деревом проекта, справа браузер с открытой консолью

Что такое Java простыми словами: это язык программирования и платформа, в которой код компилируется в байт-код и выполняется виртуальной машиной JVM — на сервере, в Android-приложении или на обычном компьютере. JavaScript — отдельный язык с похожим названием, он работает в браузере и в Node.js. Общего у них — часть синтаксиса и история названия.

Что такое Java: язык, JVM, JRE и JDK

Java — объектно-ориентированный язык со строгой статической типизацией. Его создали в компании Sun Microsystems под руководством Джеймса Гослинга, первый публичный выпуск состоялся в 1995 году. В 2010 году Sun купила Oracle, и с тех пор развитием платформы руководит она, а сам код открыт в проекте OpenJDK.

Главная идея Java — «написал один раз, запускай где угодно». Исходник в файле .java компилятор javac превращает не в машинный код конкретного процессора, а в байт-код — файл .class. Байт-код исполняет виртуальная машина Java (JVM), которая есть для Windows, Linux, macOS и других систем. Часто вызываемые участки JVM на лету компилирует в машинный код (JIT-компиляция), поэтому Java-сервисы работают быстро, хотя и тратят время на «прогрев» после старта.

Когда говорят «установить Java», имеют в виду один из трёх компонентов:

  • JVM — виртуальная машина, которая исполняет байт-код. Отдельно её не ставят, она входит в JRE и JDK.
  • JRE (Java Runtime Environment) — среда выполнения: JVM и стандартные библиотеки. Её достаточно, чтобы запускать готовые программы.
  • JDK (Java Development Kit) — набор разработчика: всё из JRE плюс компилятор javac, упаковщик jar, интерактивная консоль jshell, отладчик и другие утилиты.

Oracle начиная с Java 11 не выпускает отдельную JRE — только JDK, а для поставки программ предлагает собрать урезанную среду утилитой jlink. Сборки OpenJDK от сторонних поставщиков, например Eclipse Temurin, по-прежнему публикуют и JRE, и JDK.

Версии Java и LTS

С 2018 года новая версия Java выходит каждые полгода, в марте и сентябре. Большинство из них поддерживаются только до следующего релиза. Для серверов берут LTS-версии с долгой поддержкой: 8, 11, 17, 21 и 25. Если вы видите в требованиях программы «Java 17+», подойдёт любая версия начиная с 17.

Как выглядит программа на Java

Минимальная программа — класс с методом main:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Привет, JVM");
    }
}

Сохраните код в файл Hello.java и выполните в терминале с установленным JDK:

javac Hello.java
java Hello

Начиная с Java 11 один файл можно запустить и без отдельной компиляции: java Hello.java. Писать код удобнее в редакторе с поддержкой Java — IntelliJ IDEA или VS Code с расширениями для Java; как настроить редактор, разобрано в руководстве по Visual Studio Code.

Java — что это за программа на компьютере

Если в списке установленных программ Windows вы нашли «Java 8 Update …», «Java(TM) SE Development Kit» или «Eclipse Temurin JDK», это среда выполнения Java. Сама по себе она ничего не делает — её поставила программа, написанная на Java, или вы сами, когда какой-то сайт или установщик потребовал «установить Java». В Диспетчере задач Java-программы видны как процессы java.exe или javaw.exe (второй — без окна консоли). Старые установки Oracle Java ставили ещё и планировщик обновлений jusched.exe.

Кому Java нужна на рабочем компьютере:

  • настольным программам на Java — корпоративным клиентам, утилитам администрирования, некоторым бухгалтерским и банковским приложениям старого поколения;
  • разработчикам — для сборки и запуска Java- и Kotlin-проектов, Android-разработки, инструментов вроде Maven и Gradle;
  • серверному софту, который вы запускаете локально: Elasticsearch, Apache Kafka, Jenkins и подобным.

Многие современные программы приносят Java с собой и системная установка им не нужна: например, IntelliJ IDEA и Android Studio идут со встроенной средой JetBrains Runtime.

Нужно ли удалять Java

Если ни одна программа Java не использует — удалите. Устаревшая среда выполнения без обновлений безопасности не приносит пользы, а лишний софт — это лишняя поверхность атаки. Браузеры давно не запускают Java-апплеты, поэтому для обычного веб-сёрфинга Java не нужна вовсе.

Если не уверены, нужна ли она: посмотрите в Диспетчере задач (вкладка «Подробности»), кто запускает java.exe/javaw.exe, либо удалите Java и проверьте, какая программа перестанет запускаться — её установщик обычно подскажет, какую версию поставить обратно.

Удаление в Windows 11: Параметры → Приложения → Установленные приложения, найдите Java, нажмите «…» → «Удалить». В Windows 10 путь — Параметры → Приложения → Приложения и возможности. В Linux (Debian, Ubuntu) сначала посмотрите установленные пакеты, затем удалите лишний:

apt list --installed | grep openjdk
sudo apt remove openjdk-11-jre

Как проверить, установлена ли Java и какая версия

В командной строке Windows, PowerShell, терминале Linux или macOS:

java -version

Команда выводит версию и поставщика сборки. Если ответ «java не является внутренней или внешней командой», Java не установлена или не прописана в PATH. Где лежит исполняемый файл:

:: Windows, cmd
where java
echo %JAVA_HOME%

# PowerShell
Get-Command java
$env:JAVA_HOME

# Linux и macOS
which java
echo $JAVA_HOME

# macOS: все установленные JDK
/usr/libexec/java_home -V

# Debian/Ubuntu: переключение между версиями
sudo update-alternatives --config java

Проверить, есть ли компилятор (то есть стоит JDK, а не только JRE), можно командой javac -version.

Где скачать Java официально: Oracle или OpenJDK

Скачивайте Java только с сайтов поставщиков сборок или из менеджера пакетов вашей ОС. «Java» на файлообменниках и в рекламных баннерах «обновите Java» — классическая упаковка для вредоносных программ.

ИсточникЧто тамУсловияКому подходит
java.comOracle Java 8 (JRE) для пользователейБесплатно для личного использования, для бизнеса — по лицензии OracleТем, кому конкретная программа требует «Java 8 от Oracle»
oracle.com/javaOracle JDK актуальных версийУсловия лицензии Oracle неоднократно менялись — прочитайте их перед использованием в компанииРазработчикам и компаниям, выбравшим поддержку Oracle
jdk.java.netСборки OpenJDK от OracleОткрытая лицензия GPLv2 с исключением Classpath; обновления только до выхода следующей версииДля экспериментов с самой свежей версией
adoptium.netEclipse Temurin — сборки OpenJDK, JRE и JDKБесплатно, LTS-версии получают обновления безопасностиУниверсальный выбор для разработки и серверов
Менеджер пакетов LinuxПакеты openjdk-*-jre и openjdk-*-jdkБесплатно, обновляются вместе с системойСерверам на Debian, Ubuntu, RHEL и производных

Установка на Ubuntu выглядит так: sudo apt install openjdk-21-jdk (доступные номера версий зависят от релиза дистрибутива, проверить их можно командой apt search openjdk).

Про обновления: Oracle выпускает пакеты исправлений безопасности (Critical Patch Update) раз в квартал — в январе, апреле, июле и октябре, и сборки OpenJDK обновляются по тому же графику. Если Java стоит на сервере, эти даты стоит держать в календаре.

Язык программирования Java: где используется

Java редко видна обычному пользователю, но на ней работает большая часть «невидимой» инфраструктуры:

  • Бэкенд сайтов и сервисов. Фреймворк Spring, стандарт Jakarta EE, серверы приложений и контейнеры сервлетов Apache Tomcat, Jetty, WildFly. Банки, страховые, телеком, маркетплейсы и госсистемы строят на Java ядро своих систем.
  • Android. Библиотеки Android SDK написаны на Java, и приложения долго писали именно на ней. С 2019 года Google объявила основным языком для Android Kotlin — он тоже работает на JVM-совместимом байт-коде и свободно смешивается с Java в одном проекте.
  • Данные и инфраструктура. Apache Kafka, Elasticsearch, Apache Cassandra, Hadoop — всё это JVM-проекты.
  • Инструменты разработчика. IntelliJ IDEA, Android Studio, Jenkins, системы сборки Maven и Gradle.

Поэтому ответ на вопрос «жива ли Java» — да: новые версии выходят каждые полгода, а корпоративного кода на ней написано столько, что он будет работать ещё десятилетия.

Java и JavaScript — в чём разница

Путаница идёт из 1995 года. Тогда в Netscape Брендан Эйх создал язык для веб-страниц, который сначала назывался Mocha, потом LiveScript, а к выходу браузера Netscape Navigator 2.0 был переименован в JavaScript — Java в тот момент была на пике популярности, и имя помогало продвижению. Технически языки независимы. Стандарт JavaScript называется ECMAScript (спецификация ECMA-262, её развивает комитет TC39), а товарный знак «JavaScript» по наследству от Sun принадлежит Oracle. Сама Oracle в справке прямо пишет, что это разные технологии.

ПараметрJavaJavaScript
Где выполняетсяJVM: серверы, Android, настольные программыБраузер (V8 в Chrome, SpiderMonkey в Firefox, JavaScriptCore в Safari), на сервере — Node.js, Deno, Bun
Как запускаетсяКомпиляция javac в байт-код, затем исполнение в JVMИсходный код отдаётся как есть (часто минифицированным), движок разбирает и компилирует его на лету
ТипизацияСтатическая: тип переменной известен при компиляции, ошибки типов ловит компиляторДинамическая: тип определяется во время выполнения; статические типы добавляет надстройка TypeScript
Объектная модельКлассы и интерфейсыПрототипы; синтаксис class с ES2015 — надстройка над ними
ПараллельностьПотоки, пулы потоков, виртуальные потоки (с Java 21)Один поток и цикл событий; фоновая работа — через Web Workers в браузере и worker_threads в Node.js
Файлы.java → .class, упаковка в .jar и .war.js, .mjs; в браузер попадает через тег script
Основное назначениеБэкенд, корпоративные системы, Android, обработка данныхИнтерактивность веб-страниц, фронтенд-фреймворки, серверы на Node.js, скрипты автоматизации
СтандартJava Language Specification, развитие через OpenJDKECMAScript (ECMA-262), комитет TC39

Разница на примере кода

Одинаковые на вид выражения ведут себя по-разному. В Java тип переменной нельзя сменить, а бессмысленная операция не скомпилируется:

int count = 5;
count = "пять";        // ошибка компиляции: incompatible types
String s = "5" + 1;    // "51" — конкатенация строк
int n = "5" - 1;       // ошибка компиляции

В JavaScript то же самое выполнится, а типы приведутся неявно:

let count = 5;
count = "пять";        // допустимо, теперь это строка
console.log("5" + 1);  // "51"
console.log("5" - 1);  // 4 — строка приведена к числу

Попробовать JavaScript можно прямо сейчас: откройте консоль разработчика в браузере (F12 или Ctrl+Shift+J в Chrome) и введите строку выше. Для Java такой «встроенной консоли» в браузере нет — нужен установленный JDK и jshell.

Что учить первым — Java или JavaScript

Зависит от цели, а не от «сложности» языка. Хотите делать сайты и интерфейсы — начинайте с JavaScript — он единственный язык, который браузер исполняет напрямую (не считая WebAssembly). Интересует бэкенд крупных систем или Android — Java или Kotlin. Знание одного языка для второго не требуется: JavaScript учат без Java, и наоборот.

Как включить JavaScript в браузере — и почему Java тут ни при чём

Сообщение «Для работы сайта включите JavaScript» относится к JavaScript. Установка Java его не уберёт — нужно разрешить JavaScript в браузере:

  • Chrome на компьютере: вставьте в адресную строку chrome://settings/content/javascript и выберите «Сайты могут использовать JavaScript». Через меню: «Настройки → Конфиденциальность и безопасность → Настройки сайтов → JavaScript».
  • Microsoft Edge: адрес edge://settings/content/javascript, там же переключатель.
  • Chrome на Android: «⋮ → Настройки → Настройки сайтов → JavaScript».
  • Яндекс Браузер: «Настройки → Сайты → Расширенные настройки сайтов», раздел JavaScript.
  • Safari на iPhone: «Настройки → Safari → Дополнения → JavaScript» (в новых версиях iOS Safari находится в разделе «Настройки → Приложения»).

Владельцу сайта полезно и обратное — посмотреть, как страница выглядит без JavaScript — так её видит часть поисковых роботов до рендеринга. В Chrome откройте DevTools (F12), нажмите Ctrl+Shift+P и выполните команду «Disable JavaScript»; после закрытия DevTools настройка сбрасывается.

Как узнать, на чём работает сайт: Java или JavaScript

Во фронтенде почти любого сайта есть JavaScript, так что вопрос обычно в другом: на чём написан сервер. Как страница проходит путь от сервера до браузера, описано в статье «Как работает сайт», а здесь — признаки, по которым сервер выдаёт свой стек. Большая часть из них видна в HTTP-заголовках ответа и cookie.

ПризнакГде увидетьНа что указывает
Cookie JSESSIONIDЗаголовок Set-CookieСтандартное имя сессии Java-сервлетов: Tomcat, Jetty, WildFly и другие
;jsessionid= в адресе ссылкиURL страницJava-сервер, передающий сессию через URL, если cookie отключены
Адреса с .jsp, .do, .actionURL страниц и формJSP, Struts и другие Java-фреймворки
Server: Apache-Coyote/1.1Заголовок ServerСтарые версии Apache Tomcat
Server: Jetty(…)Заголовок ServerСервер Jetty, часто с номером версии
X-Powered-By: Servlet/… JSP/…Заголовок X-Powered-ByJava-сервер приложений
Подпись «Apache Tomcat/…» внизу страницы ошибкиСтраницы 404 и 500Tomcat со стандартными страницами ошибок и точной версией
X-Powered-By: Express, cookie connect.sidЗаголовки ответаNode.js с фреймворком Express — серверный JavaScript
X-Powered-By: Next.jsЗаголовки ответаNext.js — JavaScript-фреймворк на Node.js
Cookie PHPSESSIDЗаголовок Set-CookieДля сравнения: это PHP, не Java и не JavaScript

Посмотреть заголовки можно одной командой. В Linux, macOS и Windows 10/11 есть curl (в PowerShell пишите curl.exe, иначе сработает псевдоним другой команды):

curl -sI https://example.com
curl -s -o /dev/null -D - https://example.com | grep -iE "server|x-powered-by|set-cookie"

В PowerShell без curl:

(Invoke-WebRequest -Uri https://example.com -Method Head -UseBasicParsing).Headers

Учитывайте ограничения. Отсутствие признака ничего не доказывает: заголовки убирают, а за CDN или обратным прокси вы увидите заголовок Server прокси (например, nginx или cloudflare), а не сервера приложений. Заголовки можно и подделать. Поэтому вывод делают по совокупности признаков. Подробнее о каждом заголовке — в разборе HTTP-заголовков, а о движках сайтов — в статье как определить CMS сайта.

Почему версия сервера в заголовках — риск

Строка вроде Server: Jetty(9.4.x) или «Apache Tomcat/9.0.x» на странице ошибки сообщает атакующему точную версию. Дальше достаточно сверить её со списком известных уязвимостей и выбрать эксплойт — без долгой разведки. В Java-экосистеме были громкие случаи: Log4Shell (CVE-2021-44228) в библиотеке Log4j 2, Spring4Shell (CVE-2022-22965) во фреймворке Spring, Ghostcat (CVE-2020-1938) в AJP-коннекторе Tomcat. Раскрытая версия не создаёт уязвимость, но экономит атакующему время и помогает автоматическим сканерам выбирать цели.

Как убрать лишнее:

  • Tomcat: в server.xml задайте атрибут server у элемента Connector (значение этого заголовка) и отключите подробности на страницах ошибок: <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" /> внутри Host.
  • Express: app.disable('x-powered-by');
  • Next.js: в next.config.js — poweredByHeader: false.
  • nginx перед приложением: server_tokens off; скрывает версию самого nginx, а proxy_hide_header X-Powered-By; вырезает заголовок бэкенда.

Скрытие версии — вторая линия. Первая — обновления: пропатченный сервер с видимой версией безопаснее уязвимого, который её прячет. Что ещё стоит добавить в ответы сервера, разобрано в статье о заголовках безопасности.

Как проверить стек и заголовки своего сайта

  1. Определите технологии сайта в Tech Detect — это тот же вопрос «на чём работает сайт», только без ручного разбора заголовков.
  2. Посмотрите сами HTTP-заголовки ответа на главной странице enterno.io: Server, X-Powered-By, Set-Cookie — выдают ли они стек и версию.
  3. Прогоните сайт через проверку безопасности, чтобы увидеть, что стоит убрать или добавить в заголовки.

Проверяйте после каждого обновления сервера или смены прокси: конфигурация, скрывавшая версию, могла не пережить переустановку. За подробностями о самих языках лучше идти к первоисточникам: справочник JavaScript на MDN и сборки Eclipse Temurin на adoptium.net.

Частые вопросы

Java и JavaScript — это один язык?

Нет. Это разные языки с разным устройством, средой выполнения и назначением. Название JavaScript получил в 1995 году из маркетинговых соображений, на волне популярности Java.

Нужна ли Java, чтобы сайты работали в браузере?

Нет. Современные браузеры не запускают Java-апплеты. Сайтам нужен JavaScript, а он встроен в браузер и отдельной установки не требует.

Можно ли удалить Java с компьютера?

Да, если её не использует ни одна программа. Если после удаления что-то перестало запускаться, поставьте версию, которую требует эта программа, из официального источника и обновляйте её.

Java бесплатная?

Сборки OpenJDK — например, Eclipse Temurin или пакеты openjdk из дистрибутива Linux — бесплатны, в том числе для коммерческого использования. Для Oracle JDK условия зависят от версии и лицензии, их нужно читать перед использованием в компании.

Что такое джава и ява — это то же самое?

Да, «джава», «жава» и «ява» — разговорные варианты произношения Java. Остров Ява, в честь кофе с которого назван язык, к программированию отношения не имеет.

Как понять, какая Java нужна программе?

Смотрите системные требования программы: обычно там указана минимальная версия, например «Java 11+» или «Java 17». Текущую версию на компьютере покажет команда java -version.

Проверьте ваш сайт прямо сейчас

Проверить свой домен →
Другие статьи: Инструменты
Инструменты
Массовая проверка URL: автоматизация мониторинга сайтов
11.03.2026 · 689 просм.
Инструменты
Как дать Claude и Cursor инструменты диагностики сайта
15.06.2026 · 616 просм.
Инструменты
Что такое MCP-сервер и зачем он нужен
15.06.2026 · 431 просм.
Инструменты
Конструкторы сайтов 2026: рейтинг и как потом переехать
21.07.2026 · 227 просм.