ng-cp — команда утилиты Nailgun, предназначенная для управления пользовательским classpath сервера Nailgun. Nailgun представляет собой демон, поддерживающий быстрое выполнение Java-приложений путём постоянного запуска виртуальной машины; команда ng-cp позволяет зарегистрировать дополнительные JAR-файлы и каталоги, которые будут доступны серверу и клиентским процессам без необходимости перезапуска или перекомпиляции клиентов. В условиях, где требуется динамическое расширение набора доступных библиотек для долгоживущего JVM-процесса, ng-cp служит удобным инструментом для добавления или удаления путей к классам.
Команда реализована как часть набора утилит управления сервером Nailgun и обычно вызывается через клиент nailgun-ng или аналогичный интерфейс. В действительности реализация и синтаксис могут различаться в зависимости от конкретной сборки Nailgun: некоторые версии предоставляют простые аргументы для добавления одного или нескольких путей, другие поддерживают пакетную загрузку и конфигурационные файлы. Информации о деталях реализации ng-cp в отдельных форках может быть немного, поэтому далее приведено описание типичной функциональности и ожидаемого поведения, основанное на общих принципах работы classpath и демонов JVM.
- Добавление путей: регистрирует один или несколько JAR-файлов или директорий в classpath запущенного сервера Nailgun, делая их доступными для последующих запусков команд.
 - Динамическое обновление: позволяет расширять набор библиотек без остановки сервера, что снижает накладные расходы на перезапуск JVM при добавлении новых зависимостей.
 - Управление приоритетом: в некоторых реализациях поддерживается указание порядка поиска классов, что позволяет контролировать переопределение классов и влияние добавленных путей на существующее окружение.
 - Пакетная регистрация: возможность загрузки нескольких путей за один вызов, что удобно при развёртывании больших наборов зависимостей.
 - Совместимость с клиентами: добавленные пути применяются ко всем клиентским процессам, подключающимся к серверу, обеспечивая единообразное окружение выполнения.
 - Валидация путей: типично выполняется проверка существования указанных файлов и директорий перед добавлением; при ошибках команда возвращает диагностическое сообщение.
 - Удаление и очистка: в некоторых версиях предусмотрены механизмы удаления ранее зарегистрированных путей или сброса динамически добавленного classpath к исходному состоянию.
 - Безопасность и изоляция: при добавлении внешних компонентов рекомендуется учитывать влияние на стабильность и безопасность сервера, так как добавленные JAR могут содержать несовместимый или вредоносный код.
 - Логирование и диагностика: операция обычно сопровождается логированием изменений classpath и выдачей статуса выполнения для упрощения отладки и аудита.