
Файл с исходным кодом на Java имеет расширение .java. Для преобразования его в исполняемый байт-код используется утилита javac, входящая в комплект JDK. После компиляции создаётся файл с расширением .class, который затем можно запускать через интерпретатор java.
Компиляция выполняется командой: javac ИмяФайла.java. В случае успеха в том же каталоге появится файл ИмяФайла.class. Для запуска программы используется команда: java ИмяФайла, при этом указывать расширение .class не нужно.
Проверка установки JDK и переменной PATH
Для начала убедитесь, что JDK установлен. В командной строке выполните:
java -version
При корректной установке появится информация о версии Java, например: java version «17.0.9». Если команда не распознана, JDK либо отсутствует, либо переменные окружения не настроены.
Далее проверьте доступность компилятора:
javac -version
Чтобы исправить, откройте настройки переменных окружения и добавьте в PATH путь к каталогу bin установленного JDK, например:
C:\Program Files\Java\jdk-17\bin
После изменения переменных окружения перезапустите командную строку и повторно выполните команды проверки.
Создание простого Java файла с исходным кодом

Для начала создайте новый текстовый файл с расширением .java. Имя файла должно совпадать с именем класса. Например, если класс называется HelloWorld, файл должен иметь имя HelloWorld.java.
Внутри файла определите минимальную структуру программы:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Привет, Java!");
}
}
Файл сохраните в удобной папке без кириллических символов и пробелов в пути. Это упростит компиляцию и запуск из командной строки.
Переход в папку с файлом через командную строку

- Windows (Command Prompt):
- Переключиться на конкретную папку:
cd /d "D:\Projects\MyApp\src" - Проверить текущую папку:
cd - Если нужно вернуться на букву диска без смены каталога на этом диске: введите только букву диска, например
D:(но он не изменит каталог на этом диске).
- Переключиться на конкретную папку:
- PowerShell (Windows / кроссплатформенно):
- Перейти:
Set-Location -Path 'D:\Projects\MyApp\src'или корочеcd 'D:\Projects\MyApp\src' - Показать текущую директорию:
pwdилиGet-Location - Быстрая навигация назад:
Pop-LocationпослеPush-Location(стек директорий).
- Перейти:
- macOS / Linux (bash, zsh):
- Перейти в папку:
cd /home/alex/projects/myapp/srcилиcd ~/projects/myapp/src - Вернуться на уровень выше:
cd ..; на два уровня:cd ../.. - Переключиться в предыдущую директорию:
cd - - Проверить текущую директорию:
pwd
- Перейти в папку:
Общие практические приёмы
- Если в имени пути есть пробелы – берите путь в кавычки:
cd "C:\Program Files\My Project\src"илиcd "/Users/alex/My Project/src". - Используйте автодополнение
Tabдля ускорения ввода и исключения опечаток. - Для быстрого открытия терминала в нужной папке: в проводнике/файловом менеджере – Shift+Правый клик → «Открыть окно PowerShell здесь» / «Открыть командное окно здесь» (Windows) или в Finder → «Службы» → «Новая терминальная сессия» (macOS), если доступно.
- Проверьте наличие файла перед компиляцией:
- Windows:
dir MyClass.java - macOS/Linux/PowerShell:
ls MyClass.java
- Windows:
- Если путь слишком длинный, используйте относительный путь от текущей директории:
cd ../../otherproject/src. - При работе с несколькими проектами храните шаблон команд в README или в скрипте (
build.sh,build.bat) – тогда не придётся вручную навигировать каждый раз.
После перехода в нужную папку выполните команду компиляции, например: javac MyClass.java, или перечислите файлы: javac *.java, убедившись, что в каталоге есть нужные .java-файлы.
Использование команды javac для компиляции
Команда javac предназначена для преобразования исходного кода Java в байт-код, который выполняется виртуальной машиной JVM. После компиляции создаётся файл с расширением .class, содержащий скомпилированный байт-код.
Базовый синтаксис:
javac ИмяФайла.java
Рекомендации по использованию:
- Имя файла должно совпадать с именем класса, объявленного как
public. - Если проект содержит несколько классов, можно компилировать их все одновременно:
javac *.java - Для указания директории, куда будут помещены скомпилированные файлы, используется параметр
-d:javac -d out ИмяФайла.java - Если исходники зависят от сторонних библиотек, путь к ним указывается через
-cpили-classpath:javac -cp libs/mylib.jar;. Main.java
Типичные шаги компиляции одного класса:
- Перейти в каталог с исходным файлом:
cd src. - Выполнить команду:
javac Main.java. - Убедиться, что в папке появился файл
Main.class.
Разбор частых ошибок компиляции
Ошибка: «cannot find symbol»
Причина: указание имени класса, метода или переменной, которые не объявлены или написаны с ошибкой. Решение: проверить правильность написания идентификатора и наличие нужного импорта.
Ошибка: «class not found»
Причина: отсутствие скомпилированного .class файла или запуск с неверным именем класса. Решение: убедиться, что компиляция прошла успешно, и запускать через точное имя с учётом регистра.
Ошибка: «package does not exist»
Причина: неправильный путь к библиотеке или отсутствие её в classpath. Решение: при компиляции использовать ключ -cp и указать путь к необходимым jar-файлам или каталогам.
Ошибка: «incompatible types»
Причина: присвоение значения переменной несовместимого типа. Решение: проверить соответствие типов, при необходимости выполнить явное приведение.
Ошибка: «reached end of file while parsing»
Причина: пропущенная фигурная скобка. Решение: пересчитать количество открывающих и закрывающих скобок, особенно в длинных классах и методах.
Ошибка: «illegal start of expression»
Причина: неверное расположение ключевого слова или конструкции. Решение: убедиться, что объявления методов и классов находятся внутри соответствующих блоков.
Запуск скомпилированной программы через java
После компиляции файла с расширением .java в байт-код формируется файл с расширением .class. Для запуска программы используйте команду java ИмяКласса, где ИмяКласса соответствует имени публичного класса, содержащего метод main.
Команду нужно выполнять из той же директории, где находится файл .class, или указать путь к нему через параметр -cp (classpath). Пример: java -cp /путь/к/директории ИмяКласса.
Если проект состоит из нескольких пакетов, необходимо запускать класс, используя полное имя с пакетами: java пакет1.пакет2.ИмяКласса. Файлы .class должны быть расположены в соответствующей структуре папок.
Для передачи аргументов в программу добавляйте их через пробел после имени класса. Они будут доступны в массиве String[] args метода main. Пример: java ИмяКласса арг1 арг2.
При ошибках загрузки класса проверьте правильность указания classpath и наличие всех зависимых .class файлов. Использование опции -verbose:class позволяет отслеживать загрузку классов и выявлять проблемы.
Если программа требует внешние библиотеки, подключайте их через параметр -cp с указанием всех jar-файлов, разделенных двоеточием (Linux/macOS) или точкой с запятой (Windows). Пример: java -cp ".;lib/*" ИмяКласса.
Для больших проектов удобнее использовать сборщики типа Maven или Gradle, но прямой запуск через java остаётся быстрым способом проверки отдельных классов.
Компиляция нескольких файлов в одном проекте
Для компиляции нескольких Java-файлов одновременно используется команда javac с перечислением всех исходных файлов или указанием шаблона через маску. Это позволяет избежать последовательной компиляции каждого файла вручную и гарантирует правильную обработку зависимостей между классами.
Пример компиляции всех файлов в текущей директории:
javac *.java
javac -d bin src/com/example/*.java src/com/example/utils/*.java
Команда -d создает структуру папок в соответствии с пакетами, что упрощает дальнейшую организацию проекта и запуск классов.
Для проектов с большим количеством файлов удобнее использовать список файлов через текстовый файл. Сначала создается files.txt:
src/com/example/Main.java
src/com/example/Helper.java
src/com/example/utils/Utils.java
Затем компиляция выполняется командой:
javac -d bin @files.txt
Ниже приведена таблица ключевых опций javac при компиляции нескольких файлов:
| Опция | Назначение |
|---|---|
-d |
Указывает директорию для скомпилированных классов |
-classpath |
Задает путь к внешним библиотекам и пакетам |
-sourcepath |
Определяет директорию исходных файлов для поиска зависимостей |
@filename |
Позволяет использовать текстовый файл со списком исходников |
Важно проверять, что все зависимости между классами корректно указаны через пакеты, иначе компилятор выдаст ошибки о неизвестных символах. Для сложных проектов рекомендуется использовать структуру src для исходников и bin для результатов компиляции.
Вопрос-ответ:
Как проверить, установлен ли у меня компилятор Java?
Чтобы убедиться, что компилятор Java доступен, откройте командную строку и введите команду javac -version. Если Java установлена, вы увидите номер версии компилятора. Если команда не распознаётся, значит, Java либо не установлена, либо путь к ней не добавлен в системную переменную PATH.
Что нужно сделать, чтобы скомпилировать Java-файл с именем HelloWorld.java?
Для компиляции файла откройте командную строку, перейдите в папку с файлом с помощью команды cd путь_к_папке, затем выполните javac HelloWorld.java. После успешной компиляции в той же папке появится файл HelloWorld.class, который можно запускать командой java HelloWorld.
Можно ли скомпилировать несколько Java-файлов одновременно через командную строку?
Да, это возможно. Достаточно указать все файлы через пробел, например: javac File1.java File2.java File3.java. Компилятор создаст для каждого файла соответствующий .class-файл. Если файлы находятся в разных папках, можно использовать относительные или абсолютные пути.
Что делать, если при компиляции появляется ошибка “cannot find symbol”?
Ошибка “cannot find symbol” появляется, когда компилятор не может найти определение переменной, метода или класса. Нужно проверить, правильно ли указаны имена, нет ли опечаток, и корректно ли импортированы все классы. Также стоит убедиться, что все необходимые файлы .java скомпилированы.
Можно ли задать путь для вывода скомпилированного класса в другую папку?
Да. Для этого используется ключ -d. Например, команда javac -d bin HelloWorld.java скомпилирует файл и поместит HelloWorld.class в папку bin. Если папка не существует, Java создаст её автоматически. Это удобно для организации проектов с несколькими классами.
Как скомпилировать Java файл через командную строку на Windows?
Для компиляции Java файла через командную строку сначала убедитесь, что у вас установлен JDK, а не только JRE. Откройте командную строку и перейдите в папку, где находится ваш файл с расширением .java. Например, если файл называется HelloWorld.java и находится в папке C:\Projects, используйте команду cd C:\Projects. После этого выполните команду javac HelloWorld.java. Если ошибок нет, появится файл HelloWorld.class — это скомпилированный байт-код, который можно запускать командой java HelloWorld. Если возникнут ошибки компиляции, командная строка покажет их описание, чтобы можно было исправить код.
