Java 버전 관리 완전 가이드: 확인, 설치, 업데이트 및 문제 해결

目次

1. 소개

Java 버전 관리가 중요한 이유

Java는 웹 애플리케이션, 모바일 앱, 엔터프라이즈 시스템 등 다양한 소프트웨어 개발 분야에서 널리 사용되는 프로그래밍 언어입니다. 그 진화 속도는 빠르며, 각 버전마다 새로운 기능과 사양 변경이 도입됩니다.
예를 들어 Java 8은 람다식과 Stream API를 도입했으며, Java 11부터는 일부 모듈이 폐기되어 런타임 및 라이브러리와의 호환성에 영향을 미칩니다. 이러한 변화를 올바르게 다루기 위해서는 “현재 개발 환경에서 사용 중인 Java 버전이 무엇인지”를 항상 파악하는 것이 필수적입니다.

또한 기업 및 개발 팀에서는 보안 이유와 장기 지원(LTS) 정책에 따라 특정 Java 버전을 지정하는 경우가 많습니다. 따라서 사용 중인 버전이 너무 오래된 경우, 지원 종료로 인한 위험에 노출될 수 있습니다.

이 문서의 목적 및 대상 독자

이 문서는 Java 버전을 확인하고, Java를 설치·업데이트하며, 문제를 해결하는 방법을 포괄적으로 설명합니다. 본 문서는 다음과 같은 독자를 대상으로 합니다.

  • Java 개발을 시작하려는 초보자
  • 현재 사용 중인 버전을 확인하고 싶은 중급 사용자
  • 환경 설정이나 업데이트 과정에서 문제를 겪고 있는 실무자

각 주요 OS(Windows, macOS, Linux)별 상세 절차와 개발자 도구를 활용한 검증 방법을 소개하므로, 어느 환경에서도 적용할 수 있도록 구성되었습니다.
목표는 Java 버전에 대한 정확한 지식을 습득하고, 안전하고 편안한 개발 환경을 구축하도록 돕는 것입니다.

2. Java 버전 확인 방법

2.1 명령줄을 통한 Java 버전 확인

java -version 명령 사용

가장 기본적이고 신뢰할 수 있는 방법은 명령줄에서 Java 버전을 확인하는 것입니다. 운영 체제에 관계없이 동작합니다.
일반 절차:

  1. 터미널(macOS/Linux) 또는 명령 프롬프트(Windows)를 엽니다.
  2. 다음 명령을 입력하고 실행합니다.
    java -version
    

예시 출력:

java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

이 결과를 통해 “Java Runtime Environment (JRE)”의 버전이 17임을 확인할 수 있습니다.

javac -version 으로 JDK 버전 확인

Java 컴파일러인 javac의 버전을 확인하면 JDK가 올바르게 설치되었는지 확인할 수 있습니다.

javac -version

예시 출력:

javac 17.0.2

Java 실행 파일 위치 확인

여러 버전이 설치돼 있는 경우, 실제 사용 중인 실행 파일이 어디인지 확인하는 것이 중요합니다.

  • Windows:
    where java
    
  • macOS/Linux:
    which java
    

출력된 경로를 확인하면 Java가 설치된 위치를 파악할 수 있습니다.

2.2 GUI를 통한 확인 (Windows)

명령줄 사용이 익숙하지 않은 경우, Windows GUI에서도 Java 버전을 확인할 수 있습니다.

Java 제어판 사용

  1. 시작 메뉴에서 “Java”를 검색하고 “Configure Java”를 엽니다.
  2. “Java” 탭을 클릭한 뒤 “View”를 선택합니다.
  3. 설치된 Java 버전 목록이 표시됩니다.

이 방법을 사용하면 여러 버전이 동시에 존재하더라도 목록에서 쉽게 확인할 수 있습니다.

2.3 GUI를 통한 확인 (macOS)

macOS에서도 GUI를 통해 Java 버전을 확인할 수 있습니다.

시스템 설정에서 확인

  1. Apple 메뉴에서 “System Settings” > “Java”를 엽니다.
  2. Java 제어판이 실행됩니다.
  3. “Java” 탭을 선택하고 “View”를 클릭합니다.

Windows와 마찬가지로 상세 버전 정보를 확인할 수 있습니다.

2.4 Eclipse에서 Java 버전 확인

Eclipse를 개발 환경으로 사용하는 경우, 프로젝트별로 설정된 Java 버전을 확인하는 것이 중요합니다.
절차:

  1. Eclipse를 실행하고 대상 프로젝트를 오른쪽 클릭합니다.
  2. “Properties” > “Java Compiler”로 이동합니다.
  3. “Compiler compliance level” 필드에 사용 중인 Java 버전이 표시됩니다.

Eclipse 자체에서 사용되는 JDK 버전도 다음 단계로 확인할 수 있습니다.

  1. Window > Preferences > Java > Installed JREs 로 이동합니다.
  2. 사용 중인 JRE의 상세 정보를 확인하여 JDK 경로와 버전을 확인합니다.

3. Java 설치 방법

3.1 Windows에서 설치 절차

Oracle 공식 사이트에서 JDK 다운로드

  1. 브라우저를 열고 Oracle 공식 다운로드 페이지 로 이동합니다.
  2. 최신 Java SE Development Kit (JDK) 를 찾아 Windows용 설치 프로그램(.exe 형식)을 선택합니다.
  3. 라이선스에 동의하고 다운로드를 시작합니다.

설치 프로그램을 이용한 설치

다운로드가 완료되면 설치 프로그램을 실행하고 다음 단계를 진행합니다.

  • 기본 설치 디렉터리는 일반적으로 그대로 사용해도 무방합니다.
  • 설치는 몇 분 안에 완료됩니다.

환경 변수 설정 (중요)

명령줄에서 Java를 사용하려면 환경 변수를 설정해야 합니다.

  1. Control Panel > System > Advanced system settings > Environment Variables 를 엽니다.
  2. System variablesPath 를 선택하고 bin 폴더 경로(예: C:\Program Files\Java\jdk-17\bin) 를 추가합니다.
  3. JAVA_HOME이라는 새 변수를 만들고 JDK 경로를 지정합니다.

구성을 마친 후 Command Prompt에서 java -version을 실행하여 정상적으로 설치되었는지 확인합니다.

3.2 macOS에서 설치 절차

JDK 다운로드 및 설치

  1. Oracle 공식 페이지에서 macOS용 JDK(.pkg 형식)를 다운로드합니다.
  2. 다운로드한 파일을 더블 클릭하여 설치 프로그램을 실행하고 화면 안내에 따라 진행합니다.

터미널에서 설치 확인 및 환경 변수 설정

설치가 끝난 후 터미널을 열고 다음 명령을 실행합니다.

java -version

버전이 최신이면 설치가 정상적으로 완료된 것입니다.
필요하다면 .zshrc 또는 .bash_profile에 다음을 추가하여 JAVA_HOME을 설정합니다.

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH

변경 사항을 적용하려면 source ~/.zshrc를 실행합니다.

3.3 Linux에서 설치 절차

패키지 매니저를 이용한 설치 (Ubuntu/Debian 기반)

sudo apt update
sudo apt install openjdk-17-jdk

그런 다음 버전을 확인합니다:

java -version
javac -version

패키지 매니저를 이용한 설치 (CentOS/RHEL 기반)

sudo yum install java-17-openjdk-devel

여러 버전이 설치된 경우 버전 전환

Ubuntu에서는 다음 명령으로 설치된 Java 버전을 전환할 수 있습니다:

sudo update-alternatives --config java

수동 설치 (tar.gz 파일 사용)

  1. Oracle 공식 웹사이트에서 .tar.gz 형식의 JDK를 다운로드합니다.
  2. /usr/lib/jvm/ 등 적절한 디렉터리에 압축을 풉니다.
  3. 심볼릭 링크와 환경 변수를 수동으로 설정합니다.

이 방법은 최신 버전이나 특정 JDK 배포판을 사용하고자 할 때 유용합니다.

4. Java 업데이트 방법

4.1 Windows에서 Java 업데이트

Java 제어판을 통한 수동 업데이트

Windows에 JRE가 설치되어 있다면 다음 단계로 업데이트할 수 있습니다.

  1. 시작 메뉴에서 “Java”를 검색하고 Configure Java를 엽니다.
  2. Update 탭을 클릭합니다.
  3. Update Now를 클릭하여 최신 버전을 확인하고 설치합니다.

이 방법은 JRE에만 적용됩니다.
개발용 JDK를 사용 중이라면 Oracle 공식 사이트에서 최신 버전을 다운로드하여 재설치하는 것이 기본적인 접근 방식입니다.

JDK를 수동으로 재설치하는 방법

JDK 업데이트는 “최신 버전을 다운로드하고 설치”하는 방식으로 진행됩니다.

  1. Oracle 공식 페이지에 접속합니다.
  2. 최신 JDK를 다운로드합니다(구버전을 삭제해도 무방합니다).
  3. 설치 후 필요에 따라 JAVA_HOMEPath를 다시 설정합니다.

4.2 macOS에서 Java 업데이트

Java 제어판을 통한 업데이트 (JRE용)

  1. System Settings > Java를 열어 제어판을 엽니다.
  2. Update 탭을 클릭합니다.
  3. Update Now를 실행합니다.

JDK 업데이트 방법

macOS에서는 최신 JDK를 수동으로 설치하는 것이 일반적인 방법이기도 합니다.

  1. Oracle 공식 사이트 또는 Adoptium과 같은 JDK 배포 사이트에서 최신 버전을 다운로드합니다.
  2. .pkg 파일을 더블 클릭하여 설치합니다.
  3. 더 이상 이전 버전이 필요하지 않다면 제거할 수 있습니다.

JAVA_HOME 재설정을 잊지 마세요

새 버전으로 전환할 때 JAVA_HOME 경로가 변경될 수 있습니다.
다음과 같이 재설정합니다:

export JAVA_HOME=$(/usr/libexec/java_home)

4.3 Linux에서 Java 업데이트

패키지 관리자를 통한 업데이트

Linux 환경에서는 OS 패키지 관리자를 사용하여 Java를 업데이트할 수 있습니다.
Ubuntu / Debian 기반:

sudo apt update
sudo apt upgrade openjdk-17-jdk

CentOS / RHEL 기반:

sudo yum update java-17-openjdk-devel

여러 설치된 버전 간 전환

새 JDK와 이전 JDK 버전이 동시에 존재한다면, 활성 버전을 수동으로 전환해야 합니다:

sudo update-alternatives --config java
sudo update-alternatives --config javac

대화형 목록이 표시되며, 사용하려는 버전을 선택하면 됩니다.

수동 업데이트 (tar.gz 사용)

패키지에 의존하지 않고 특정 버전을 설치하려면 tar.gz 형식의 JDK를 다운로드하고 압축을 푼 뒤, 경로와 환경 변수를 수동으로 설정할 수 있습니다.
이전 JDK를 제거하고 새 설정을 적용하면 됩니다.

5. 일반적인 문제 및 해결 방법

5.1 버전을 확인할 때 “java is not recognized as an internal or external command” 오류가 발생할 경우

원인

  • Path 환경 변수에 Java 경로가 설정되지 않았습니다.
  • Java가 올바르게 설치되지 않았습니다.

해결 방법

  1. JDK가 올바르게 설치되었는지 확인합니다.
  2. Path 환경 변수에 Java bin 디렉터리를 추가합니다 (예시):
    C:Program FilesJavajdk-17bin
    
  1. 명령 프롬프트를 재시작하고 java -version을 다시 실행합니다.

5.2 여러 Java 버전이 공존하고 의도하지 않은 버전이 사용되는 경우

원인

  • 여러 JDK/JRE가 설치되어 있으며, 환경 변수 우선순위에 따라 사용되는 버전이 달라집니다.

해결 방법 (Windows / macOS / Linux)

  • 명령줄에서 where java(Windows) 또는 which java(macOS/Linux)를 사용하여 현재 사용 중인 Java 실행 파일을 찾습니다.
  • Path(Windows) 또는 .zshrc/.bash_profile(macOS/Linux)에 원하는 Java 경로를 명시적으로 작성합니다.
  • Linux에서는 update-alternatives를 사용해 버전을 전환합니다.

5.3 Eclipse와 같은 IDE에서 빌드 오류 발생 (예: “Compiler compliance level does not match”)

원인

  • 프로젝트에 설정된 Java 버전이 Eclipse가 인식하는 JDK 버전과 다릅니다.

해결 방법

  1. Eclipse에서 “Window” → “Preferences” → “Java” → “Installed JREs”를 열어 JDK 경로를 확인합니다.
  2. 프로젝트를 우클릭 → “Properties” → “Java Compiler”에서 “Compiler compliance level”을 조정합니다 (예: Java 17에 맞춤).

5.4 Java 업데이트 후에도 오래된 버전이 남아 있는 경우

원인

  • Java는 기존 버전을 덮어쓰지 않고 그대로 남겨둡니다.
  • 여러 버전을 남겨두면 설정 오류나 보안 위험이 발생할 수 있습니다.

해결 방법

  • Windows에서는 “Apps & Features”에서, macOS에서는 /Library/Java/JavaVirtualMachines/에서 불필요한 버전을 삭제합니다.
  • 삭제 후 PathJAVA_HOME이 올바르게 업데이트되었는지 확인합니다.

5.5 Java 웹 애플리케이션에서 “Unsupported major.minor version” 오류가 발생하는 경우

원인

  • 애플리케이션을 컴파일할 때 사용한 Java 버전과 런타임에 사용되는 Java 버전이 다릅니다 (예: Java 17로 빌드 → Java 8에서 실행).

해결 방법

  • 런타임 Java 버전을 확인하고 컴파일 시 대상 버전을 명시적으로 설정합니다 (예: javac -target 1.8).
  • 또는 런타임 환경의 Java 버전을 업그레이드합니다.

6. FAQ (자주 묻는 질문)

여기서는 초보자와 중급 사용자가 자주 묻는 Java 버전 관련 질문들을 실용적이고 이해하기 쉬운 답변과 함께 정리합니다. 검색 수요가 높은 주제에 중점을 둡니다.

Q1. JRE와 JDK의 차이점은 무엇인가요?

A: JRE (Java Runtime Environment)는 Java로 구축된 애플리케이션을 “실행”하기 위한 환경입니다. JDK (Java Development Kit)는 Java 프로그램을 “개발, 컴파일, 실행”하기 위한 완전한 도구 세트입니다. 개발자는 일반적으로 JDK를 설치해야 합니다.

Q2. Java 버전 번호는 무엇을 의미하나요?

A: Java 버전은 “Java 17.0.2.”처럼 표현됩니다.

  • 첫 번째 숫자 “17”은 주요 버전 (Java 17)입니다.
  • “0”은 마이너 버전입니다.
  • “2”은 업데이트 번호입니다.

Java 9 이후부터 Java는 시간 기반 릴리스 일정을 따르며 — 6개월마다 새로운 버전을 출시합니다. LTS (Long-Term Support) 버전은 기업 환경에서 특히 중요합니다 (예: Java 8, 11, 17, 21).

Q3. 여러 Java 버전을 설치해도 괜찮나요?

A: 네, 여러 버전이 공존할 수 있습니다. 그러나 의도하지 않은 버전이 호출되지 않도록 사용할 버전을 명시적으로 지정해야 합니다. Linux에서는 update-alternatives를 사용하며, Windows/macOS에서는 PathJAVA_HOME 관리가 핵심입니다.

Q4. 이전 Java 버전을 제거해야 하나요?

A: 일반적으로 예 — 불필요한 버전을 제거하는 것이 권장됩니다. 보안 위험을 줄이기 위해 오래된 사용하지 않는 JRE/JDK 버전을 삭제하고 환경 변수를 최신 설정으로 조정하세요.

Q5. Java 버전 간 전환은 어떻게 하나요?

A: Windows:

  • PathJAVA_HOME을 수동으로 구성하세요.
  • 배치 파일이나 전용 도구를 사용하여 여러 버전 간 전환할 수도 있습니다.

macOS / Linux:

  • .bash_profile 또는 .zshrc를 편집하고 export JAVA_HOME=...을 설정하세요.
  • macOS에서는 /usr/libexec/java_home -v <version>을 사용하여 버전을 쉽게 전환할 수 있습니다.

Q6. Java 업데이트 알림을 자주 받습니다. 무시해도 안전한가요?

A: 활성 개발이나 실행과 관련이 없다면, 일시적으로 무시해도 운영상 큰 문제가 발생하지 않습니다. 그러나 — 보안 관점에서 — 조기 업데이트를 강력히 권장합니다. 특히 기업 시스템이나 웹 앱에서는 최신 버전을 유지하는 것이 중요합니다.

7. 요약

Java 버전 관리는 개발 환경의 안정성, 애플리케이션 호환성, 심지어 보안에 영향을 미치는 매우 중요한 요소입니다. 버전 불일치로 인한 문제는 전혀 드물지 않습니다. 이 기사에서 우리는 체계적으로 설명했습니다:

  • Java 버전 확인 방법 (명령줄, GUI, IDE)
  • OS별 설치 절차 (Windows / macOS / Linux)
  • 안전한 업데이트 수행 방법 및 주의점
  • 일반적인 실생활 문제와 해결책
  • 초보자가 자주 막히는 자주 묻는 질문

이 점들을 올바르게 이해하고 적용함으로써 Java 버전 관리에 자신감을 얻을 수 있습니다. 특히 Java를 배우려는 사람이나 새로운 개발 환경을 설정하려는 사람에게, JDK 설치, 버전 전환, 업데이트를 원활하게 처리할 수 있는 능력은 직접적으로 기술 향상으로 이어집니다. 환경 준비는 프로그래밍의 생산성과 동기부여에 큰 영향을 미칩니다. 이 기사를 참고로 안정적이고 최신 Java 환경을 구축하세요.