Java에서 이미 사용 중인 주소 JVM_Bind 오류
이 자습서는 Java의 address already in use jvm_bind
오류를 보여줍니다.
Java에서 이미 사용 중인 주소: JVM_Bind
오류
이미 사용 중인 주소: JVM_Bind
는 주로 웹 애플리케이션에서 작업할 때 발생합니다. 이 오류는 Tomcat, Struts, JBoss 등과 같은 서비스를 사용할 때 일반적입니다.
다른 응용 프로그램이 이미 수신 대기 중인 포트로 바인딩하려고 하면 오류가 발생합니다. 이 문제를 해결하려면 현재 애플리케이션의 포트를 변경하거나 동일한 포트에서 실행 중인 다른 애플리케이션을 종료해야 합니다.
다음은 두 시나리오에 대한 솔루션입니다.
다른 포트에서 실행되도록 웹 서버 변경
웹 서버 포트를 변경하는 것은 대부분의 시나리오에서 쉬운 작업입니다. 예를 들어 Tomcat을 사용하는 경우 웹 서버 포트를 변경하려면 아래 프로세스를 따르십시오.
-
일반적으로
C:/apache-tomcat-7.0.11/conf/server.xml
디렉토리에서server.xml
파일을 찾습니다. -
server.xml
파일은 아래와 같이 코드 스니펫이 됩니다.<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- 이제 커넥터 포트 번호를 다른 포트 번호로 변경하고 저장합니다.
- 이제 웹 서버가 주어진 포트 번호에서 실행됩니다.
Address already in use: JVM_Bind
오류가 해결되었습니다.
이전 서비스 종료
또한 포트에서 실행 중인 이전 애플리케이션을 종료하여 해당 포트에서 애플리케이션을 실행할 수 있습니다. 이를 위해서는 서비스가 실행 중인 프로세스를 찾은 다음 해당 서비스를 종료해야 합니다.
다음은 Windows 및 Linux 플랫폼에서 서비스를 찾아 종료하는 프로세스입니다.
Windows의 경우:
-
먼저 포트 번호를 사용하여 프로세스를 찾습니다. 다음 명령을 사용하십시오.
netstat -ano | find "8080"
-
위의 명령은 포트
8080
에서 실행 중인 프로세스를 찾습니다. 이제 예를 들어 찾은 프로세스는1234
입니다. -
다음 명령을 사용하여
1234
프로세스를 종료합니다.taskkill /F /PID 1234
taskkill
명령은 프로세스 ID가1234
인 프로세스를 종료합니다.- 이제
Address already in use: JVM_Bind
오류 없이8080
포트에서 애플리케이션을 실행할 수 있습니다.
리눅스의 경우:
-
마찬가지로
netstat
명령은 Linux에서 서비스 또는 프로세스를 찾는 데에도 사용됩니다. -
netstat
는 네트워크 상태를 표시하는 데 사용되고grep
명령은 포트에서 실행 중인 프로세스를 찾는 데 사용됩니다. 아래 명령을 참조하십시오.netstat -an | grep "8080"
-
위의 명령은 포트
8080
에서 실행 중인 프로세스를 찾습니다. 이제 예를 들어 찾은 프로세스는1234
입니다. -
kill
명령을 사용하여1234
프로세스를 종료합니다.kill - 1234
-
Linux에서 이 명령을 실행하면
Address already in use: JVM_Bind
오류가 해결됩니다.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook