No Eclipse, recebi este erro:
run:
[java] Error creating the server socket.
[java] Oct 04, 2012 5:31:38 PM cascadas.ace.AceFactory bootstrap
[java] SEVERE: Failed to create world : java.net.BindException: Address already in use: JVM_Bind
[java] Java Result: -1
BUILD SUCCESSFUL
Total time: 10 seconds
Não sei por que surgiu agora, mas correu bem apenas algumas horas atrás. Preciso reiniciar minha máquina? Como chego ao fundo disso? Agradeço qualquer dica ou conselho.
Respostas:
Sim, você tem outro processo vinculado à mesma porta.
O TCPView (somente Windows) do Windows Sysinternals é meu aplicativo favorito sempre que tenho um erro JVM_BIND. Ele mostra quais processos estão ouvindo em qual porta. Ele também fornece um menu de contexto conveniente para interromper o processo ou fechar a conexão que está atrapalhando.
fonte
netstat
é o comando que você está procurando, com as opções -a e -p,man netstat
é seu amigo para todo o resto :) #Se você sabe qual porta o processo está sendo executado, você pode digitar:
lsof -i:<port>
.Por exemplo,
lsof -i:8080
para listar o processo (pid) em execução na porta 8080.Então mate o processo com
kill <pid>
fonte
sudo apt-get install lsof
java.net.BindException: Address already in use (Bind failed)
que useilsof -i:8080
e obtivetcp6 0 0 :::8080 :::* LISTEN 106872/java
. O que devo fazer ? Kill java ??htop
. Talvez você tente ligar a uma porta usada por um programa válido que não deve ser eliminado.No windows
listará todos os protocolos, portas e processos de escuta. Usar
para matar o processo ouvindo a porta. por exemplo
fonte
find
não funcionou, masfindstr
funcionou. Para evitar falsos positivos, também ajuda a acrescentar dois pontos, por exemplonetstat -ano | findstr :8080
. Tendo feito isso - digamos que retornou um PID de 1234 - se você quiser procurar o nome desse processo, isso pode ser feito viatasklist /fi "pid eq 1234
".No Mac:
Terminal do processo da matança :
kill <pid>
Encontrar pid: Terminal:
lsof -i:<port>
Da resposta de Diego Pino
fonte
No Ubuntu / Unix , podemos resolver esse problema em 2 etapas, conforme descrito abaixo.
Tipo
netstat -plten |grep java
Isso fornecerá uma saída semelhante a:
Aqui
8080
está o número da porta na qual o processo java está atendendo e9488
é seu ID do processo (pid).Para liberar a porta ocupada, precisamos matar esse processo usando o
kill
comando9488
é a identificação do processo anterior. Usamos-9
para forçar a parada do processo.Sua porta agora deve estar livre e você pode reiniciar o servidor.
fonte
(Somente Windows)
Para matar um processo, primeiro você precisa encontrar o ID do processo (pid)
Executando o comando:
Você receberá seu ID do processo (PID). Agora, para matar o mesmo processo, execute este comando:
fonte
Você tem outro processo em execução na mesma porta.
Você pode tentar matar um dos serviços java.exe em execução no gerenciador de tarefas - ps, certifique-se de não matar o eclipse, pois ele também está listado como java.exe. Se nada mais funcionar, reiniciar sua máquina irá corrigi-lo de qualquer maneira. Parece que você não está desligando um soquete de um teste anterior. Espero que isto ajude.
fonte
Para aqueles que procuram as respostas mais simples (como é o que geralmente perdemos), pare o seu projeto em execução e inicie-o novamente. Na maioria das vezes, o que fazemos é que esquecemos de interromper o projeto que executamos anteriormente e, quando o reiniciamos, ele mostra esse problema.
Também estou anexando uma foto para torná-la mais clara (eu uso o 'Spring tool suite'). Então, o que você precisa fazer é clicar no botão na extrema direita, se você deseja reiniciar o mesmo projeto ou primeiro clique no botão que é o 2º da direita para interromper o projeto e, em seguida, no botão à esquerda para executar seu projecto. Espero que isso resolva o problema de alguns dos programadores mais recentes. :)
fonte
Na linha do Windows CMD, encontre o ID do processo que mantém uma conexão na porta de ligação digitando o seguinte comando:
C:> netstat -a -o
-a mostra todas as conexões
-o show identificador de processo
E então encerre o processo.
fonte
Sim, como Guido Simone disse, porque outro processo está ouvindo a mesma porta. Se você está no Ubuntu, você pode simplesmente matar esse processo, dando o comando
sudo kill $(sudo lsof -t -i:[port number])
ex:
sudo kill $(sudo lsof -t -i:8080)
Mas uma vez que não funcionou para mim. eu dei o comando
e não mostra nada.
Verifiquei os contêineres do docker usando o comando,
docker ps -a
mas nenhum deles está ativo. docker usando o comandosudo service docker stop
e tente novamente. Surpreendentemente, o eclipse não mostrou o erro naquele momento. Ele executou meu programa perfeitamente.Espero que minha experiência ajude alguém.
fonte
Você precisa fechar sua porta se você for um usuário linux e digite
fonte
A porta já está sendo usada por outro processo, como @Diego Pino disse que você pode usar lsof no unix para localizar o processo e matar o respectivo, se você estiver no Windows, use netstat -ano para obter todos os pids do processo e o portas que todo mundo adquire. procure sua porta pretendida e mate.
para ser muito fácil, basta reiniciar sua máquina, se for possível :)
fonte
Reinicie o PC uma vez, acho que vai funcionar. Começou a funcionar no meu caso. Mais uma coisa pode ser feita, vá para o Gerenciador de tarefas e encerre o processo.
fonte
No meu caso, o Tomcat estava sendo executado em segundo plano. Eu o instalei como um servlet externo enquanto usava o Eclipse. Com um Spring Boot no Intellij, ele possui seu próprio servidor, mas não pode ser iniciado enquanto já estiver ocupado.
No meu caso, o Tomcat inicia automaticamente, ligo o SO, por isso preciso desligá-lo manualmente:
é claro que "tomcat" depende da versão do tomcat que você está usando.
Espero que ajude alguém.
fonte
Eu enfrentei um problema semelhante no Eclipse quando dois consoles foram abertos quando iniciei o programa Servidor primeiro e depois o programa Cliente. Eu costumava parar o programa no console único pensando que ele havia fechado o servidor, mas apenas o cliente e não o servidor. Encontrei processos Java em execução no meu Gerenciador de tarefas. Esse problema foi resolvido fechando os programas Servidor e Cliente de seus consoles individuais (o Eclipse mostra o console do último programa ativo). Portanto, quando iniciei o programa Servidor novamente, a porta estava novamente aberta para ser capturada.
fonte
Sua porta deve estar ocupada em outro processo. Para fazer o download do TCPView em https://technet.microsoft.com/en-us/sysinternals/bb897437 e finalizar o processo para a porta usada.
Se você não conhece sua porta, clique duas vezes no servidor que não está iniciando, clique em Abrir página de propriedades do servidor e clique em glassfish da coluna esquerda. Você encontrará as portas aqui.
fonte
(1) verifique se a porta está em uso ou não, mate esse processo
$ lsof -i: [porta]
(2) outro motivo é que a porta é usada pelo ipv6, solução:
editar /etc/sysctl.conf
adicione isso ao arquivo
net.ipv6.conf.all.disable_ipv6 = 1
então faça efeito
$ sudo sysctl -p /etc/sysctl.conf
ou apenas reinicie
fonte
Isso significa que algum outro processo já está usando a porta. Caso essa porta esteja sendo usada por outros aplicativos críticos e você não queira fechar esse aplicativo, a melhor maneira é escolher qualquer outra porta que seja livre para usar.
Configure seu aplicativo para usar qualquer outra porta livre e você verá seu aplicativo funcionando.
fonte
Para janelas :
Encontre o ID do processo
netstat -nao | encontre "8080"
Ele mostrará o ID do processo como um número.
Exemplo :
Aqui 18856 é o ID do processo
Mate esse processo
skillkill / PID 18856 / F
Saída : SUCESSO: O processo com o PID 18856 foi encerrado.
Aqui, usando o taskkill, você está matando o processo de ID: 18856
Para Linux / Mac :
Aqui você encontra o processo usando
sudo lsof -t -i:8080
e matando-o pelo comando sudo killfonte