HOWTO · Java
Java에서 이미 사용 중인 주소 JVM_Bind 오류
이 자습서는 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오류가 해결됩니다.