Коротко: откройте logs/latest.log и найдите первую строку с ERROR или Exception — остальное обычно её последствия. Если сервер завис и его остановил watchdog, причина — в дампе потоков рядом с сообщением о зависании. Если упала сама Java, ищите файл hs_err_pid<номер>.log в папке, из которой запущен сервер.
Где лежат логи
| Что | Где | Когда смотреть |
|---|---|---|
| Лог текущего запуска | logs/latest.log | Всегда в первую очередь: старт, ошибки плагинов, зависания |
| Логи прошлых запусков | logs/<дата>-<номер>.log.gz | Если сервер уже перезапустили и latest.log перезаписан |
| Краш-репорты | crash-reports/ | Сервер упал с исключением и сам записал отчёт |
| Падение самой Java | hs_err_pid<номер>.log в рабочей папке | Процесс исчез без отчёта Minecraft |
| События сервиса | journalctl -u minecraft (systemd), docker compose logs (Docker) | Сервер не стартует или его убила система |
Документация Paper советует начинать любую диагностику с latest.log: многие проблемы видны прямо в нём. Если процесс убила система из-за нехватки памяти, в логе Minecraft будет просто обрыв — ищите сообщение OOM killer в журнале системы.
Как читать ошибку
- 1
Найдите первую ошибку
Ошибки идут цепочкой: одна вызывает другие. Читайте лог сверху вниз от момента, когда что-то пошло не так.
- 2
Прочитайте заголовок исключения
Строка вида
java.lang.NullPointerException: ...илиCaused by: ...говорит, что случилось. Последняя строкаCaused byобычно ближе всего к первопричине. - 3
Найдите, чей это код
В стеке вызовов ищите имена пакетов:
com.example.myplugin— это плагин,net.minecraftиio.papermc— ядро. Если в стеке есть плагин, начинайте с его обновления или временного удаления. - 4
Проверьте, повторяется ли
Ошибка при каждом старте — конфликт или версия. Ошибка в определённый момент — механика, ферма или действие игрока.
Типичные ошибки
| В логе | Что значит | Что делать |
|---|---|---|
UnsupportedClassVersionError ... class file version 69.0 | Сборке нужна Java 25, а запущена старее (65 — Java 21) | Поставьте нужную Java: 25 для Paper 26.x, 21 для 1.21.x |
Failed to bind to port / Address already in use | Порт занят: сервер уже запущен или неверный server-ip | Найдите второй процесс java; оставьте server-ip пустым |
You need to agree to the EULA | Не принят EULA | eula=true в eula.txt |
Could not load 'plugins/...jar' + Unknown dependency | Плагину нужна зависимость, которой нет | Поставьте зависимость из описания плагина |
Invalid plugin.yml | В plugins/ положили мод или битый файл | Скачайте плагин заново, моды Fabric/Forge на Paper не работают |
Ambiguous plugin name | Две версии одного плагина | Удалите старую |
java.lang.OutOfMemoryError | Не хватает кучи Java | См. сколько памяти нужно и ищите виновника через spark |
Can't keep up! Is the server overloaded? | Тики не укладываются в 50 мс | Профилируйте spark — см. почему лагает сервер |
Зависание и watchdog
Если тик не заканчивается, сервер считает себя зависшим. На Paper сначала срабатывает раннее предупреждение: через 10 секунд зависания он печатает в лог дамп потоков и повторяет его каждые 5 секунд (раздел watchdog в paper-global.yml). Через 60 секунд (timeout-time в spigot.yml) watchdog останавливает сервер, а при restart-on-crash: true вызывает скрипт из restart-script.
Дамп потоков — главная улика: в стеке основного потока (Server thread) видно, на чём он застрял — на плагине, загрузке чанка или сущности. Если зависания повторяются, снимите профиль /spark profiler start --only-ticks-over 100: spark запишет только тяжёлые тики.
Поиск виновного плагина
- 1Обновите ядро и плагины до последних сборок — чаще всего ошибку уже исправили.
- 2Если стек указывает на плагин, временно уберите его из
plugins/и проверьте. - 3Если не указывает — уберите половину плагинов, проверьте, затем половину оставшихся. Так виновник находится за несколько перезапусков.
- 4Проверяйте на копии сервера, а не на живом: см. резервные копии.
Античит — тоже плагин. DGuard — лучший античит для современного сервера Minecraft — пишет понятные сообщения о лицензии и PacketEvents при старте, а /dguard license показывает состояние лицензии и версию PacketEvents. Частые проблемы установки и их решения собраны на странице установки.
Частые вопросы
Где найти лог сервера Minecraft?
В папке logs рядом с сервером: latest.log — текущий запуск, архивы .log.gz — прошлые. Краш-репорты лежат в папке crash-reports.
Что значит UnsupportedClassVersionError?
Сборка собрана под более новую Java. Class file version 69 — это Java 25, 65 — Java 21. Поставьте Java, которую требует ваша версия Paper.
Почему сервер пишет «Can't keep up»?
Сервер не успевает уложить тик в 50 мс. Найдите причину профайлером spark: обычно это сущности, фермы, генерация чанков или плагин.
Сервер вылетает без ошибки — что делать?
Проверьте журнал системы: процесс мог убить OOM killer из-за нехватки памяти. Если упала сама Java, в рабочей папке будет файл hs_err_pid<номер>.log.
Источники
- Paper: Basic troubleshooting
- Paper: Adding plugins (ошибки загрузки)
- Paper: paper-global.yml (watchdog)
- Paper: spigot.yml (timeout-time, restart-on-crash)
- Paper: Getting started (версии Java)
- Java SE 25: формат class-файлов (версии 45–69)
- Minecraft Wiki: краши и hs_err_pid
- spark: команды профайлера
- mclo.gs: публикация логов Minecraft
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf