Проблема, на которую вы ссылаетесь, не похожа: вы уже решили проблему, с которой он столкнулся, поэтому вам не нужно беспокоиться о попытках применить его решение.Вместо этого ваша проблема заключается в том, что какая-то другая программа использует сокет 8080, поэтому веб-сервер labrepl не может.
В прошлый раз, когда я использовал Eclipse, оказалось, что сам Eclipse дополнительно использует 8080 для какой-то поддержки динамического языка, и это мешало мне;но 8080 - довольно распространенный порт, и кто-то другой может его использовать.
Если вы используете Unix-подобную операционную систему, есть один способ узнать, у кого открыт этот сокет - используйте lsof
перечислить «открытые файлы» с параметром -i
, чтобы сказать, что вы имеете в виду сокеты.
$ lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 6427 akm 46u IPv6 107739 0t0 TCP *:http-alt (LISTEN)
$ cat /proc/6427/cmdline
java-cplib/*:src/:resourceclojure.main-e(use 'sexpbot.run) (-main)
Командная строка немного искажена, но распознаваема: процесс 6427 слушаетмой порт 8080, и этот процесс является моей локальной копией sexpbot .
Если у вас есть такой процесс, вы можете обойти свою проблему, временно отключив его (скажем, убив процесс).
Лучшее долгосрочное решение - настроить Jetty на использование другого порта для labrepl.Я уверен, что есть лучшие способы сделать это, но я плохо знаю Jetty.Если вы загляните внутрь labrepl/src/labrepl.clj
, там будет строка (run-jetty (var app) {:port 8080
.Измените 8080 на какой-нибудь другой порт (скажем, 8778), и тогда он должен нормально загрузиться.Вы сможете перейти к localhost: 8778 и таким образом работать с labrepl.