Компиляция в Java
Скомпилируйте крошечный учебный файл и запустите созданный class-файл. В Build.java оставьте public-класс Build, на первом демо напечатайте ok, после изменения файла и повторной компиляции напечатайте ok и built на втором демо. Запустите javac Build.java, чтобы рядом с исходником появился Build.class. Запускайте java Build — не java Build.java. Mini Project оставьте для следующей страницы. Этот урок — привычка «скомпилировать и запустить» с видимым .class, а не новый вызов библиотеки и не финал курса.
Скомпилируйте один раз, затем запустите класс
Откройте Build.java. Имя public-класса — Build. Удалите оставшиеся демо Summary с Recap, броски Random из Dice, печати дат Stamp и любой клавиатурный Scanner, который ждёт ввода. Программа не должна ждать ввод.
Внутри Build.main напечатайте одно короткое слово:
System.out.println("ok");
Из папки, где лежит Build.java, выполните javac Build.java. Когда скобки и точки с запятой сходятся, javac сам ничего не печатает. Он записывает Build.class рядом с исходником. Именно этот .class загружает лаунчер Java.
Затем запустите java Build. Не добавляйте окончание .java к команде запуска. Оставьте один public-класс, чтобы имя совпадало с Build. Экран покажет ok.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
}
}
Пройдите запуск один раз. javac читает Build.java и пишет Build.class. java Build загружает Build.class, входит в Build.main и печатает ok. Никто не строит new Random(42). Никто не печатает ready 42 из Recap. Никто не замораживает календарный день.
Произнесите правило новичка, глядя в папку: исходник кончается на .java, байткод — на .class, компилируйте через javac, запускайте через java с именем класса. Не придумывайте Mini Project на этой странице — он ждёт следующий урок. Не вводите java Build.java — такая форма запуска для этого пути курса неверна.
Если вы всё ещё видите ready 42 из оставшегося файла Recap, переключитесь на Build.java и после javac Build.java запустите java Build. Если javac сообщает об ошибке, исправьте исходник и снова скомпилируйте перед запуском. Если запуск не находит main-класс Build, убедитесь, что вы в папке с Build.class и что компиляция прошла успешно.
Измените исходник, скомпилируйте снова
Первое демо доказывает одну успешную компиляцию. Второе — что после правок нужен свежий javac, иначе экран не изменится. Оставьте тот же public-класс Build. Напечатайте две строки:
System.out.println("ok");
System.out.println("built");
Сохраните файл. Снова выполните javac Build.java, чтобы перезаписать Build.class. Затем java Build. Экран покажет ok, затем built.
Если вы меняете исходник и пропускаете javac, java Build может по-прежнему показывать только ok из старого .class. Такой устаревший экран — урок компиляции, а не Random. После каждой сохранённой правки на этой странице компилируйте заново.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
System.out.println("built");
}
}
Снова выполните javac Build.java и java Build. Пройдите запуск один раз. Новый .class хранит обе строки печати. Первая пишет ok. Вторая — built. Ничто не ждёт клавиатуру. Ничто не хранит seed. Ничто не склеивает ready и 42.
Держите два демо как две учебные формы. Сначала докажите одну строку после чистой компиляции. Затем — две строки после перекомпиляции. Обе формы делят одно имя класса и одни команды. Вторая только добавляет ещё один println.
Если вы удалите Build.class и запустите java Build без компиляции, лаунчер упадёт — байткода нет. Скомпилируйте снова, чтобы вернуть Build.class. Если два public-класса в одном файле, javac ругается — в учебном файле оставьте public только у Build.
javac и java
Эти две команды выглядят похоже и делают разную работу. Держите их раздельно, пока тренируетесь.
📊 Привычки компиляции и запуска для Build
| Команда | Работа | Проверка новичка |
|---|---|---|
javac Build.java |
читает исходник, пишет Build.class |
успех часто без вывода; ищите файл .class |
java Build |
загружает Build.class и стартует main |
без окончания .java в этой команде |
java Build.java |
неверная форма для этого урока | исправьте команду; не делайте её учебным запуском |
Пропуск javac после правки |
может выполняться старый байткод | устаревший экран — снова javac |
Нет Build.class |
запуск не загрузит класс | сначала javac Build.java |
Compiling — не Summary и не Mini Project
Summary просил объяснить ready 42 из Recap. Compiling просит смотреть, как javac пишет байткод и как java его загружает. Mini Project на следующей странице попросит собрать маленькую программу самим. Не смешивайте эти три задачи в одном новичковом файле сегодня.
ok и built — только слова на экране для этого учебного файла. Это не грани Random и не строка карты Summary. Когда import Random пропал в оставшемся файле Dice, это проблема практики Random, а не Compiling. Когда Recap всё ещё печатает ready 42, оставьте тот файл историей и держите на экране Build.
Без javac нет свежего .class для последнего исходника. Без правильной команды java Build вы можете так и не загрузить класс. Делайте оба шага. Имя класса должно совпадать с файлом. Файлы Mini Project не трогайте на этой странице до того урока.
Проверка папки перед переходом дальше
После успешной компиляции посмотрите папку. Рядом должны стоять Build.java и Build.class. Исходник вы редактируете. Class-файл вы запускаете. Новички иногда гонятся за экраном, правя не тот файл — откройте Build.java, сохраните, скомпилируйте, затем запустите.
Если javac не находит Build.java, проверьте текущую папку и написание имени, включая заглавную B. Если запуск ничего не печатает, убедитесь, что в main остались строки println. Если после добавления built экран показывает только ok, вы, скорее всего, пропустили вторую компиляцию.
Не превращайте Compiling в место для деревьев package или jar-упаковки — эти темы ждут. На этой странице один public-класс, два ясных экрана и пара javac / java.
Перед Mini Project
Вы можете держать public-класс Build, на первом демо печатать ok, на втором — ok затем built, компилировать через javac Build.java, видеть появление Build.class и запускать java Build без окончания .java. Таблица разделяет компиляцию и запуск. Следующая страница — Mini Project, где вы соберёте маленькую программу из уже знакомых кусков.
Держите демо Build как ясную пару «скомпилировать — запустить». Не тащите файлы Recap Summary на эту страницу, когда тренируете Compiling. Не тащите демо Random dice, когда тренируете Compiling. Работу Mini Project оставьте до того урока. Эти привычки — контрольная точка перед переходом. Когда однострочный экран показывает ok или двухстрочный — ok затем built, Compiling сделал своё, и вы готовы к Mini Project.
Последний проход по папке: один public Build, после javac есть Build.class, нет ожидания клавиатуры, нет навязанных import Random или LocalDate, команда запуска без .java. Ещё раз выполните javac Build.java и java Build на демо, которое держите открытым. Если экран по-прежнему ok или ok затем built, форма Compiling надёжна, и курс может перейти к Mini Project на следующей странице. На каждом чтении держите одну ясную привычку компиляции, чтобы каждый проход учил ту же карту.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху