Вызывается: java.net.BindException: адрес уже используется: bind
Я пытаюсь запустить приложение весенней загрузки, нажав "Запуск от имени" -> "Spring Boot App". Я получаю ошибку как:
Вызывается: java.net.BindException: адрес уже используется: bind
Когда я использую команду netstat, я вижу ниже без идентификаторов процесса:
netstat -na | find "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
TCP [::]:8080 [::]:0 LISTENING
Обратите внимание - я запускаю свой код на машине с Windows
Как мне убить эти процессы?
4 ответа
Вы можете изменить номер порта вашего приложения, предоставив что-то вроде server.port=4567
в вашем application.properties
,
ИЛИ ЖЕ
Вы можете выполнить шаги, указанные в http://www.codeman.in/blog/windows-kill-process-by-port-number-157 чтобы убить процесс, запущенный на номере порта:-
Попробуйте команду lsof -i, она должна перечислить сетевые соединения среди pid. Или еще лучше lsof -i:8080
Скорее всего, используется "8080", либо вы завершаете задачу / закрываете приложение, либо просто меняете порт по умолчанию, который используется при загрузке Spring. Несколько способов достичь, application.properties - один из них.
try {
SpringApplication.run(Application.class, args);
} catch (org.springframework.boot.web.server.PortInUseException e) {
//Runtime.exec("pkil")..
//or
SpringApplication.run(Application.class, otherargs);
//SpringApplication.run(Application.class, new String[]{"--server.port=8444"});
//when invoked recursively it is a port rebalancer for startup stage via application restarts within many busy ports which are used before or without querying.
}