IT/개발

[Error] java.net.SocketException: Bad address: listen

와잉 2026. 3. 10. 22:18
Caused by: java.net.SocketException: Bad address: listen

 

!!!!!!

 

Spring 관련 프로젝트를  진행하려는데 몇 달 전부터 간헐적으로 해당 오류가 발생해 의욕을 잃고 넘어간 적이 많았다. . ... 

 

근데 드디어 문제를 해결했다...!!! Gradle 데몬 죽이기, 캐시 초기화, hosts 파일 수정, 데몬 비활성화 다 아니었고 

다 있음ㅎ

 

VMware 때문이었다.

사실 이전에 VMware가 있을 때 문제가 없었어서 원인이 아닐 줄 알았는데 ....지피티 말로는 VMware 설치만 하고 안쓰거나 최근에 네트워크 상태나 JVM 환경이 조금만 바뀌어도 갑자기 오류가 나타날 수 있다고 한다.

 

그래서

 

GPT가 알려준 해결 방법 중 나는 2번 방법 가상 네트워크 비활성화를 시켜줬다.

해결 방법 (추천 순서)

1️⃣ JVM을 IPv4만 사용하게 만들기

프로젝트 루트에

gradle.properties
내용 추가
org.gradle.jvmargs=-Djava.net.preferIPv4Stack=true
 
이게 가장 효과적인 해결 방법입니다.

 


2️⃣ 사용 안 하는 가상 네트워크 잠시 비활성화

Windows 기준

제어판
→ 네트워크 상태 및 작업 보기
→ 어댑터 설정 변경 (나는 VMware Network Adapter VMnet1, VMnet8이 활성화되어 있었다.)
→ 사용 안함 (VMware Network Adapter 비활성화)
 

예)

- VirtualBox Host Only
- VMware VMnet1

 

다시 빌드를 해주면

 

BUILD SUCCESSFUL

 

cs 공부 열심히 하자


정리

로그 원인

- 로컬 네트워크 설정이나 환경 변수에 문제가 생겨서 포트를 바인딩(bind)하지 못한 상태

Gradle daemon이 TCP 서버를 만들 때
listen 단계에서 네트워크 주소 오류 발생

-- TCP 서버 동작 순서
1. socket()   → 소켓 생성
2. bind()     → IP + 포트 지정
3. listen()   → 연결 대기 상태
4. accept()   → 클라이언트 연결 수락

 

내 원인

- VMware Network Adapter (VMnet1, VMnet8)의 상태 문제

JVM이 잘못된 네트워크 인터페이스 선택

 

해결방법

- 문제를 발생시키는 네트워크 어댑터 비활성화

JVM이 선택할 네트워크 인터페이스 목록에서 제거