Для этого вы должны создать свой собственный загрузчик классов, а jar должен быть вне пути к классам, чтобы не мешать существующим загрузчикам классов.
Когда обнаруживается, что файл jar изменился (посмотрите на отметку файла каждые X секунд), затем скажите вашему приложению прекратить работу, сбросить старый загрузчик классов, создать новый загрузчик классов и сообщить вашему приложению о запуске внутриновый загрузчик классов.
Вы должны сделать это так, или instanceof
с друзьями не будет работать правильно.(Если вы хотите узнать больше об этом, изучите все мелкие детали JNDI).
Самый простой способ сделать это - написать его как веб-приложение (WAR) и развернуть его вКонтейнер сервлетов, в котором все, что вам нужно сделать, выполняется как часть установки и демонтажа веб-приложения.Контейнеру сервлетов не требуется наличие веб-сервера (прослушиватель http-порта и т. Д.).
Большинство современных контейнеров сервлетов допускают автоматическое повторное развертывание.Хороший, маленький - Причал.