Загрузка...

Компиляция в 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.

Build prints ok

java
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. После каждой сохранённой правки на этой странице компилируйте заново.

Build prints ok then built

java
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 на следующей странице. На каждом чтении держите одну ясную привычку компиляции, чтобы каждый проход учил ту же карту.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
5
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху