Comment résoudre l'erreur" java.net.BindException: Adresse déjà utilisée: JVM Bind"?


Dans Eclipse, j'ai eu cette erreur:

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

Je ne sais pas pourquoi il est apparu maintenant, mais il a bien fonctionné il y a quelques heures. Dois-je redémarrer mon ordinateur? Comment puis-je aller au fond des choses? J'apprécie tous les conseils ou conseils.

Author: Coffee, 2012-10-05

16 answers

Oui, vous avez un autre processus lié au même port.

TCPView (Windows uniquement) de Windows Sysinternals est mon application préférée chaque fois que j'ai une erreur JVM_BIND. Il montre quels processus écoutent sur quel port. Il fournit également un menu contextuel pratique pour tuer le processus ou fermer la connexion qui gêne.

 104
Author: Guido Simone, 2013-10-30 17:34:30

Si vous savez quel port le processus est en cours d'exécution, vous pouvez taper: lsof -i:<port>.

Par exemple, lsof -i:8080, pour lister le processus (pid) s'exécutant sur le port 8080.

, Puis tuer le processus avec kill <pid>

 152
Author: Diego Pino, 2016-08-24 13:05:58

Dans Windows

netstat -ano

Liste tous les protocoles, ports et processus d'écoute . Utiliser

taskkill -pid "proces to kill" /f

Pour tuer le processus en écoutant le port. par exemple

 taskkill -pid 431 /f
 82
Author: Abhi, 2014-10-01 18:00:05

Dans Mac:

Processus de destruction Terminal: kill <pid>

Trouver pid: Terminal: lsof -i:<port>

De Diego Pino réponse

 29
Author: Hoyin, 2018-03-01 06:13:39

Dans Ubuntu/Unix nous pouvons résoudre ce problème en effectuant 2 étapes comme décrit ci-dessous.

 1. Use netstat -plten |grep java

Il donnera une sortie comme ceci

tcp   0   0 0.0.0.0:8080   0.0.0.0:*  LISTEN   1001  76084  9488/java       

Ici le port no est 8080 à quel processus java est en cours d'exécution. Et son identifiant de processus (pid) est 9488 en face de java (9488/java).

2. Now to resolve the Address already in use problem you
have to kill this process using this command.

kill -9 9488

Ici: -9 pour arrêter et forcely 9488 est l'identifiant du processus.

Maintenant, exécutez à nouveau le serveur.J'espère que cette réponse le fera utile pour vous les gars.

 18
Author: Bharti Rawat, 2018-03-01 03:26:02

Vous avez un autre processus en cours d'exécution sur le même port.

Vous pouvez essayer de tuer l'un des java.les services exe s'exécutant dans votre gestionnaire de tâches - ps assurez-vous de ne pas tuer eclipse car cela est répertorié comme java.exe ainsi. Si rien d'autre ne fonctionne, le redémarrage de votre machine le corrigera de toute façon. Il semble que vous n'arrêtiez pas un socket d'un test précédent. Espérons que cette aide.

 7
Author: javarebel, 2012-10-04 23:11:05

(Windows Uniquement)

Pour tuer un processus, vous devez d'abord trouver l'Id de Processus (pid)

En exécutant la commande :

netstat -ano | findstr :yourPortNumber

Comme le montre la photo ci-dessous

Vous obtiendrez votre Id de processus (PID), Maintenant pour tuer le même processus exécutez cette commande:

taskkill /pid yourid /f

entrez la description de l'image ici

 5
Author: Sufiyan Ansari, 2018-06-25 08:35:34

Dans la ligne Windows CMD, recherchez l'ID de processus qui contient une connexion sur le port de liaison en entrant la commande suivante:

C:> netstat -a-o

-un afficher toutes les connexions

-o afficher l'identifiant du processus

Puis Terminent le processus.

 4
Author: CharlesX, 2015-08-17 08:15:00

Pour ceux qui recherchent la la plus simple des réponses (car c'est ce qui nous manque habituellement), arrêtez simplement votre projet en cours d'exécution et recommencez-le. La plupart du temps, ce que nous faisons, c'est que nous oublions d'arrêter le projet que nous avons exécuté plus tôt et lorsque nous le relançons, il montre un tel problème.

Je joins également une photo pour la rendre plus claire (j'utilise 'Spring tool suite'). Donc, ce que vous devez faire est de cliquer sur le bouton à l'extrême droite, si vous voulez relancer le même projet ou cliquez d'abord sur le bouton qui est 2ème à partir de la droite pour arrêter votre projet, puis sur le bouton à l'extrême gauche pour exécuter votre projet. J'espère que cela résoudra le problème de quelques-uns des nouveaux programmeurs. :)

entrez la description de l'image ici

 2
Author: Learner, 2017-02-24 07:46:47

Oui, comme Guido Simone l'a dit parce qu'un autre processus écoute le même port.Si vous êtes dans Ubuntu Vous pouvez simplement tuer ce processus en donnant la commande sudo kill $(sudo lsof -t -i:[port number])

Ex: sudo kill $(sudo lsof -t -i:8080)

Mais une fois cela n'a pas fonctionné pour moi. j'ai donné la commande

$ lsof -i:[port] 

Et cela ne montre rien.

J'ai vérifié mes conteneurs docker à l'aide de la commande docker ps -a mais non d'entre eux vivants.Tous les conteneurs se sont arrêtés (mais je me souviens, j'ai arrêté un conteneur qui a été utilisé même port il y a quelques minutes.). Pour s'assurer que docker n'est pas la raison,j'arrête tout le processus docker en utilisant la commande sudo service docker stop et réessaie. Étonnamment, eclipse n'a pas montré l'erreur à ce moment-là .Il exécute parfaitement mon programme.

J'espère que mon expérience aidera quelqu'un.

 2
Author: Yasitha Bandara, 2017-09-03 07:39:15

Le port est déjà utilisé par un autre processus comme @Diego Pino a dit que vous pouvez utiliser lsof sur unix pour localiser le processus et tuer le processus respectif, si vous êtes sous Windows, utilisez netstat-ano pour obtenir tous les PID du processus et les ports que tout le monde acquiert. recherchez votre port prévu et tuer.

Pour être très facile, redémarrez simplement votre machine, si c'est possible:)

 1
Author: Akash Yadav, 2012-10-05 00:08:37

Redémarrez le PC une fois, je pense que cela fonctionnera. Il a commencé à travailler dans mon cas. Une autre chose peut être faite aller au Gestionnaire des tâches et mettre fin au processus.

Capture d'écran pour la référence.

 1
Author: Kumar, 2018-05-23 12:30:59

J'ai rencontré un problème similaire dans Eclipse lorsque deux consoles ont été ouvertes lorsque j'ai démarré le programme serveur, puis le programme Client. J'avais l'habitude d'arrêter le programme dans la console unique en pensant qu'il avait fermé le serveur, mais il n'avait fermé que le client et non le serveur. J'ai trouvé des processus Java en cours d'exécution dans mon gestionnaire de tâches. Ce problème a été résolu en fermant les programmes serveur et client de leurs consoles individuelles(Eclipse affiche la console du dernier programme actif). Lorsque j'ai commencé à le programme du serveur à nouveau, le port était à nouveau ouvert pour être capturé.

 0
Author: Chetan Gowda, 2016-07-18 10:17:44

Votre port doit être occupé dans un autre processus. Vous pouvez donc télécharger TCPView sur https://technet.microsoft.com/en-us/sysinternals/bb897437 et tuer le processus pour le port utilisé.

Si vous ne connaissez pas votre port, double-cliquez sur le serveur qui ne démarre pas et cliquez sur Ouvrir la page des propriétés du serveur et cliquez sur glassfish dans la colonne de gauche. Vous trouverez les ports ici.

 0
Author: Suketu Patel, 2016-08-18 08:01:16

(1) vérifiez que le port est utilisé ou non, tuez ce processus

$ lsof-i:[port]

(2) une autre raison est que le port est utilisé par ipv6, solution:

Modifier /etc/sysctl.conf

Ajoutez ceci au fichier

Net.ipv6.conf.tout.disable_ipv6 = 1

Puis faites-le effet

$ je ne sais pas si c'est le cas.conf

Ou redémarrez simplement

 0
Author: tonysok, 2017-02-17 17:43:55

Cela signifie qu'un autre processus utilise déjà le port. Dans le cas où ce port est utilisé par d'autres applications critiques et que vous ne souhaitez pas fermer cette application, la meilleure façon est de choisir un autre port libre d'utilisation.

Configurez votre application pour utiliser tout autre port gratuit et vous verrez votre application fonctionner.

 0
Author: Rakesh Burbure, 2018-01-31 07:32:07