Команда dotnet --list-sdks или adb version, введённая в терминал, показывает установленную версию SDK за пару секунд — но только если инструмент прописан в переменной PATH, иначе система ответит ошибкой «не является внутренней или внешней командой». Именно с этой ошибкой чаще всего сталкиваются разработчики при попытке проверить окружение на новой машине или после переустановки системы.
Проблема в том, что единого способа проверки не существует: у каждого SDK своя команда, своё расположение на диске и свои переменные окружения. Ниже разберём, как определить версии самых распространённых SDK — Android SDK, .NET SDK, Java JDK и Flutter — через командную строку, IDE и файловую систему.
Что такое SDK и почему важно знать его версию
SDK (Software Development Kit) — это набор инструментов, библиотек и документации для разработки под конкретную платформу. В отличие от обычной программы, у SDK нет привычного окна «О программе», поэтому версию приходится выяснять обходными путями.
Знать установленную версию необходимо в нескольких ситуациях: при настройке нового проекта, где среда разработки требует конкретный релиз инструментария; при диагностике ошибок сборки, когда проект не компилируется именно из-за несовместимости версий; при установке дополнительных компонентов, которые привязаны к определённой ветке SDK. Также проверка нужна после обновлений — чтобы убедиться, что новая версия действительно встала в систему.
Проверка Android SDK
Для Android SDK есть несколько рабочих способов. Самый быстрый — через терминал. Откройте командную строку и выполните:
adb version
В ответ система выведет версию Android Debug Bridge и путь к platform-tools. Если нужна версия инструментов командной строки SDK, используйте команду sdkmanager --list_installed — она покажет все установленные пакеты: платформы, build-tools, system images.
Второй способ — через Android Studio. Откройте File → Settings → Languages & Frameworks → Android SDK (в новых версиях путь может немного отличаться). На вкладке SDK Platforms видны установленные версии Android API, а на вкладке SDK Tools — версии инструментов. Там же указан путь Android SDK Location, по которому можно проверить содержимое вручную в проводнике.
⚠️ Внимание: если командаadbне распознаётся, это не значит, что SDK не установлен. Скорее всего, папкаplatform-toolsпросто не добавлена в переменную PATH. Проверьте каталог SDK напрямую — обычно он находится в профиле пользователя, в папкеAppData\Local\Android\Sdkна Windows.
Проверка .NET SDK
У платформы .NET проверка максимально прямолинейная. Откройте командную строку или PowerShell и введите:
dotnet --list-sdks
Команда выведет список всех установленных версий SDK с указанием путей установки — их может быть несколько одновременно, и это нормально. Если нужна только активная версия, которая будет использоваться по умолчанию, выполните dotnet --version.
Обратите внимание на различие двух сущностей: SDK включает компилятор и инструменты разработки, а Runtime — только среду выполнения. Посмотреть установленные рантаймы можно командой dotnet --list-runtimes. Если проект требует SDK, а установлен только Runtime, сборка не запустится.
Проверка Java JDK
Для Java стандартная проверка выглядит так:
java -version
javac -version
Первая команда показывает версию JRE (среды выполнения), вторая — версию компилятора, который входит только в JDK. Если java -version работает, а javac -version выдаёт ошибку, значит, установлена только среда выполнения без инструментов разработки — для компиляции проектов этого недостаточно.
Когда в системе стоит несколько версий Java, активную определяет переменная окружения JAVA_HOME и порядок записей в PATH. Проверить значение переменной в Windows можно командой echo %JAVA_HOME%, в Linux и macOS — echo $JAVA_HOME. Путь установки также подскажет команда where java (Windows) или which java (Linux/macOS).
Как переключаться между несколькими версиями JDK
На Windows нужно изменить значение JAVA_HOME и порядок путей в PATH в системных переменных окружения. На macOS есть утилита /usr/libexec/java_home, которая показывает все установленные JDK. В Linux удобно использовать механизм alternatives. После смены переменных перезапустите терминал и IDE.
Проверка Flutter и других SDK
В Flutter всё собрано в одной команде:
flutter --version
Она покажет версию фреймворка, канал (stable, beta), версию Dart и ревизию движка. Более детальную диагностику всего окружения даёт flutter doctor — утилита проверит Flutter, Android SDK, подключённые инструменты и сообщит, чего не хватает.
Для других SDK действует тот же принцип: у большинства инструментов есть флаг --version или -v. Например, node --version для Node.js, python --version для Python. Если флаг не сработал, загляните в официальную документацию конкретного SDK — там указана актуальная команда проверки.
Проверка через файловую систему и переменные окружения
Если терминал не помогает, версию можно определить вручную по каталогу установки. Многие SDK хранят компоненты в папках с номерами версий — например, build-tools Android SDK лежат в подкаталогах вида build-tools\34.0.0, а .NET SDK — в C:\Program Files\dotnet\sdk\ с подпапками по версиям.
Полезный набор действий для ручной диагностики:
- 🔍 Откройте папку установки SDK и посмотрите имена подкаталогов — часто они содержат номер версии.
- 🧭 Проверьте системные переменные окружения:
ANDROID_HOME,JAVA_HOME, PATH — они указывают на активные установки. - 📄 Найдите файлы
source.propertiesили аналогичные метаданные внутри каталогов SDK — в них прописана версия пакета. - 🖥️ Загляните в настройки IDE — среды разработки обычно показывают пути и версии используемых SDK.
☑️ Диагностика, если версия SDK не определяется
Типичные проблемы при проверке версии
Чаще всего проверка заканчивается ошибкой «команда не найдена». Возможные причины: SDK не установлен, путь не прописан в PATH, либо терминал открыт до изменения переменных окружения и не подхватил новые значения. Решение — перезапустить терминал, а при необходимости и всю IDE.
Вторая типичная ситуация — конфликт нескольких версий. Система использует ту версию SDK, чей путь стоит выше в переменной PATH, поэтому вывод команды может не совпадать с тем, что видит ваша IDE. Сверяйте оба источника, если сборка ведёт себя неожиданно.
⚠️ Внимание: не удаляйте старые версии SDK, пока не убедитесь, что ни один проект на них не завязан. Некоторые проекты жёстко привязаны к конкретной версии инструментов — например, через файлglobal.jsonу .NET или настройкиcompileSdkу Android.
Сводная таблица команд проверки
| SDK | Команда проверки | Что показывает |
|---|---|---|
| Android SDK | adb version, sdkmanager --list_installed | Версию ADB и список установленных пакетов |
| .NET SDK | dotnet --list-sdks | Все установленные версии SDK с путями |
| Java JDK | javac -version | Версию компилятора Java |
| Flutter | flutter --version, flutter doctor | Версию Flutter, Dart и состояние окружения |
| Node.js | node --version | Версию платформы Node.js |
Часто задаваемые вопросы
Команда выдаёт «не является внутренней или внешней командой» — SDK не установлен?
Не обязательно. Такая ошибка означает лишь, что система не нашла исполняемый файл по путям из PATH. Проверьте каталог установки SDK вручную и добавьте нужную папку в переменные окружения, затем перезапустите терминал.
Как узнать версию Android SDK без Android Studio?
Откройте каталог SDK (по умолчанию в профиле пользователя Windows это AppData\Local\Android\Sdk) и посмотрите подпапки platforms и build-tools — их имена соответствуют версиям. Либо запустите sdkmanager --list_installed из папки cmdline-tools.
Можно ли держать несколько версий SDK одновременно?
Да, для .NET, Java и Android SDK это штатная практика. Управление активной версией происходит через переменные окружения, порядок путей в PATH или конфигурационные файлы проекта.
Чем отличается SDK от Runtime при проверке версии?
SDK включает инструменты разработки и компилятор, Runtime — только среду выполнения готовых приложений. Команда dotnet --list-sdks и javac -version показывают именно инструментарий разработчика; если они не работают, а приложения запускаются, установлен только Runtime.
Почему IDE и терминал показывают разные версии SDK?
IDE может использовать собственный путь к SDK, заданный в её настройках, а терминал опирается на PATH. Сверьте путь в настройках среды разработки с выводом команды проверки и при необходимости приведите их к одной установке.