Українська
Git і передавання роботи
Помилки та спосіб перевірки
Помилки компіляції виникають до запуску. Наприклад, system.out.println посилається на неоголошене ім’я. Читайте перше повідомлення компілятора й номер рядка; наступні повідомлення можуть бути наслідками першої незакритої дужки або пропущеної крапки з комою.

Рис. 1.9. Повідомлення про помилку компіляції
Помилка виконання виникає після успішної компіляції. Логічна помилка може взагалі не спричинити винятку: програма надрукує число, але воно не відповідатиме умові задачі. Тому «запустилося» не означає «правильно».
| Спостереження | Що перевірити |
|---|---|
java не знайдено | Повний шлях, PATH і новий термінал |
| Не знайдено головний клас | Каталог, classpath, пакет та ім’я класу |
| UnsupportedClassVersionError | Версію компілятора і фактичної JVM |
| Неправильні літери | UTF-8 файла, кодування потоку та шрифт |
| Старий результат | Конфігурацію запуску і повторну компіляцію |
Для перевірки кодування можна явно задати опції JVM в лапках PowerShell:
powershell
java '-Dstdout.encoding=UTF-8' Hello OlenaЦе налаштовує вихідний потік, але не змінює вже неправильно збережений вихідний файл. Для компілятора залишається javac -encoding UTF-8. У кожного шару є власна відповідальність: файл, JVM, термінал, шрифт.
Зберігайте в README ім’я головного класу, версію JDK, команди компіляції й запуску, приклад аргументів та очікуваний результат. Інший студент повинен отримати той самий предметний результат без копіювання вашої папки out і без особистих абсолютних шляхів.
Передавання готового прикладу
Відтворюваність перевіряють поза звичним вікном IDE. Створіть окремий каталог для результату компіляції:
powershell
javac -encoding UTF-8 -d out Hello.java
java -cp out Hello Olena
jar --create --file hello.jar --main-class Hello -C out .
java -jar hello.jar OlenaУ JAR зберігається байт-код, а атрибут головного класу в маніфесті дозволяє запуск через -jar. Архів не містить усю JDK і не гарантує, що на чужому комп’ютері є сумісна JVM. Для цього прикладу явно зазначайте вимогу JDK 27. Проєкти з зовнішніми бібліотеками потребують окремого керування залежностями.
Перейдіть в інший робочий каталог і запустіть JAR через його повний шлях. Результат привітання повинен збігатися. Якщо програма працює лише з папки IDE, вона, ймовірно, неявно залежить від відносного шляху або стороннього файла. Такий зв’язок потрібно описати або усунути.
Пакет здачі містить вихідні файли, .gitignore, README й локальну історію. Згенеровані класи можна відновити; вони не замінюють вихідний код. У README відокремлюють команди від очікуваного виводу: рядок Вітаю, Olena! не є командою оболонки. Також варто зазначити нормальний код завершення 0.
Для першого приймального тесту достатньо трьох випадків: без аргументів, одне ім’я, ім’я з пробілом. У кожному запишіть довжину args та очікуваний рядок. Ці випадки перевіряють контракт, а не тільки одну зручну демонстрацію. Подальші теми додадуть помилковий числовий ввід, EOF і граничні значення.
Як відокремити джерело помилки
Нехай програма правильно працює в IDE, але команда в терміналі не знаходить клас. Спочатку перевіряють не формулу, а шлях до класів: чи існує файл після компіляції, чи збігається його ім’я, чи правильний аргумент -cp. Повторне встановлення IDE не є логічним першим кроком для такої помилки.
Якщо і IDE, і термінал друкують однаково неправильне число, причина, імовірно, у даних або алгоритмі. Випишіть проміжні значення й порівняйте їх із ручним розрахунком. Зміна версії JDK не виправить пропущеного множника чи неправильних одиниць довжини.
Якщо відрізняються лише десяткові роздільники, перевіряють локаль форматування. Якщо різняться літери, перевіряють кодування. Якщо програма читає не той файл, перевіряють робочий каталог. Такий порядок робить діагностику перевіркою гіпотез, а не набором випадкових змін.
Корисний журнал перевірки має чотири стовпці: команда, вхідні дані, очікуваний результат, фактичний результат. Для залежних від середовища значень запишіть правило перевірки: «головна версія 27», а не випадковий абсолютний шлях автора. Після виправлення повторіть саме той випадок, який раніше не працював.
Не копіюйте знімок чужого успішного запуску як доказ виконання своєї програми. Вихідний код, команда й результат мають стосуватися одного стану репозиторію. Для захисту зручно зазначати короткий ідентифікатор коміту, який можна знову запустити.