[환경설정] 3. JDK 설치

최재원's avatar
Jan 24, 2025
[환경설정] 3. JDK 설치
자바 개발 키트(Java Development Kit, JDK)는 자바 SE자바 EE, 또는 자바 ME 플랫폼 중 하나를 구현한 것으로[4] 솔라리스리눅스맥 OS X, 또는 윈도우 자바 개발자를 대상으로 오라클에 의해 바이너리 제품으로 제공된다. 자바 플랫폼의 등장 이래 지금까지 가장 널리 사용되는 소프트웨어 개발 키트(SDK)다. 2006년 11월 17일 은 GNU 일반 공중 사용 허가서 (GPL)하에 출시될 것이라고 발표했고, 이에 따라 자유 소프트웨어가 되었다. 이는 썬이 2007년 5월 8일 소스 코드를 오픈 JDK에 기부함에 따라 이루어졌다.[5]

1. JDK 압축 풀기

다운로드 주소

다운로드 링크

notion image
notion image

2. 압축 해제 된 파일 다음 경로로 이동

notion image

3. 명령 프롬프트 열기

notion image
notepad가 cmd 에서 왜 실행됐는지 설명
❕notepad가 있는 폴더(system32)가 환경 path에 등록되어 있기 때문에 실행됨
실행명령을 하면 외부 환경(path)에 등록되어 있는지 먼저 확인하고 내부(현재폴더)를 확인함.

4. JDK bin 폴더 환경 변수 설정 🚫

  • JAVA_HOME 만 있으면 됨
notion image
notion image
notion image
notion image
notion image

5. 환경 변수(패스) 적용

  • 재부팅
  • 명령 프롬프트 재시작
  • java —version 명령어로 확인
notion image

6. 환경 변수에 JAVA_HOME 등록

JAVA_HOME이 필요한 이유:
1. 빌드 도구가 참조함 Maven, Gradle 같은 빌드 도구는 JAVA_HOME 환경변수를 보고 어떤 JDK로 컴파일할지 결정합니다.
2. 다른 도구들의 의존성 Tomcat, Spring Boot, IDE 플러그인 등 많은 Java 관련 도구들이 JAVA_HOME을 기준으로 JDK 경로를 찾습니다.
3. PATH만으로는 부족PATHjava.exe가 있어도, 빌드 도구는 JDK 전체 경로(컴파일러 javac, 라이브러리 rt.jar 등)가 필요합니다. JAVA_HOME이 있어야 %JAVA_HOME%\bin\javac, %JAVA_HOME%\lib\... 이런 식으로 접근할 수 있습니다.
notion image
notion image
notion image
notion image
  • 위처럼 자바 경로 변경
notion image
  • ECHO : OS의 print 같은 명령어
  • %JAVA_HOME% : 해당 이름으로 변수 설정을 하면 프로그램들이 자동으로 이 경로를 확인해서 자바를 찾아 준다.(약속)
  • 프롬프트 창은 켤때 환경 변수값을 읽기 때문에 변경하면 새로 켜야한다
 

7. vscode 기반의 에디터에서 java red hat이 jre를 못찾는다고 한다면…

notion image
  • 왼쪽 아래처럼 에러가 나타나면 확인
notion image
  • 내가 설치한 jdk에 release 파일이 있는지 확인해라 이 파일이 있어야 동작한다
  • release 파일은 JDK의 메타데이터 파일입니다.
    • 내용을 열어보면 이런 식으로 되어 있습니다:
      • JAVA_VERSION="21.0.2" JAVA_VERSION_DATE="2024-01-16" OS_NAME="Windows" OS_ARCH="amd64" IMPLEMENTOR="Oracle Corporation" ...
    • VS Code의 Red Hat Java 확장은 이 파일을 읽어서 해당 폴더가 유효한 JDK인지, 어떤 버전인지 판단합니다.

8. ??. 프로젝트에 java 버전 명시 - 필요한거 맞는지 검증

21 버전이 아닌 다른 버전을 사용할 때 명시를 하지 않으면 vscode에서 빌드가 되지 않는다
notion image
루트에 gradle.properties 파일 생성
org.gradle.java.installations.paths=C:\\workspace\\tools\\jdk-17

9. 리눅스에 설치 및 세팅

목적

리눅스 환경에서 java, javac 명령이 바로 실행되도록 JDK를 설치하고 환경변수를 설정한다.

1. 설치 방식

[설치 방식] ├─ A. 패키지 매니저 설치 │ └─ apt install openjdk-17-jdk │ └─ B. 수동 설치 └─ Linux용 tar.gz 다운로드 후 원하는 경로에 압축 해제

권장 기준

A. apt 설치 - 가장 간단함 - Ubuntu 표준 방식 - PATH 연동이 쉬움 B. tar.gz 수동 설치 - 설치 경로를 직접 지정 가능 - 특정 버전 고정이 쉬움 - 여러 JDK 버전 관리할 때 유리

2. 주의사항

운영체제용 JDK를 맞춰야 한다

호스트 PC가 Windows여도 WSL 내부는 Linux 이므로 반드시 Linux용 JDK를 설치해야 한다
잘못된 예:
  • Windows용 zip
  • Windows용 .exe 포함 JDK
올바른 예:
  • Linux/x64 64-bit tar.gz

아키텍처 확인

uname -m
결과 예시:
x86_64 -> Linux/x64 받으면 됨 aarch64 -> Linux/AArch64 받으면 됨
대부분 WSL Ubuntu는 x86_64 이므로 Linux/x64 를 받으면 된다.

3. 방법 A - apt로 설치

설치

sudo apt update sudo apt install -y openjdk-17-jdk

확인

java -version javac -version which java
예상 결과:
java 17.x javac 17.x /usr/bin/java

JAVA_HOME 확인용 실제 경로 조회

readlink -f $(which java)
예시 결과:
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
그러면 JAVA_HOME 은 다음이다.
/usr/lib/jvm/java-17-openjdk-amd64

JAVA_HOME 등록

nano ~/.bashrc
맨 아래 추가:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH="$JAVA_HOME/bin:$PATH"
반영:
source ~/.bashrc
확인:
echo $JAVA_HOME which java java -version

4. 방법 B - tar.gz로 원하는 경로에 수동 설치

예시 설치 경로

/home/ubuntu/workspace/tools/jdk-17

1) Linux용 tar.gz 다운로드

예:
  • openjdk-17_linux-x64_bin.tar.gz
주의:
  • 반드시 Linux/x64 tar.gz
  • Windows zip 파일 아님

2) 원하는 경로로 이동

mkdir -p /home/ubuntu/workspace/tools cd /home/ubuntu/workspace/tools

3) 압축 해제

다운로드 파일이 Windows 다운로드 폴더에 있다면:
tar -xzf /mnt/c/Users/사용자명/Downloads/openjdk-17_linux-x64_bin.tar.gz
압축 해제 후 예시:
/home/ubuntu/workspace/tools/jdk-17.0.1
원하는 고정 이름으로 변경:
mv /home/ubuntu/workspace/tools/jdk-17.0.1 /home/ubuntu/workspace/tools/jdk-17

4) 환경변수 등록

nano ~/.bashrc
맨 아래 추가:
export JAVA_HOME=/home/ubuntu/workspace/tools/jdk-17 export PATH="$JAVA_HOME/bin:$PATH"
반영:
source ~/.bashrc

5) 확인

echo $JAVA_HOME which java java -version javac -version
정상 결과 예시:
JAVA_HOME=/home/ubuntu/workspace/tools/jdk-17 which java -> /home/ubuntu/workspace/tools/jdk-17/bin/java

5. 실행 권한 문제

Windows 탐색기나 7-Zip으로 WSL 경로에 직접 압축을 풀면 실행 권한이 깨질 수 있다.
증상:
Permission denied
예시:
java -version -bash: /home/ubuntu/workspace/tools/jdk-17/bin/java: Permission denied

해결

chmod +x /home/ubuntu/workspace/tools/jdk-17/bin/*
또는
find /home/ubuntu/workspace/tools/jdk-17/bin -type f -exec chmod +x {} \;
다시 확인:
java -version javac -version

6. 잘못 설치한 경우 구분법

Windows용 JDK를 잘못 넣은 경우

bin 폴더 안에 이런 파일이 보이면 Windows용이다.
java.exe javac.exe jar.exe
이 경우 WSL에서 그대로 쓰면 안 된다.

Linux용 JDK 정상 예시

bin/java bin/javac
확인 명령:
file /home/ubuntu/workspace/tools/jdk-17/bin/java
정상 예시:
ELF 64-bit LSB executable
비정상 예시:
  • .exe
  • Windows executable

7. 추천 구조

/home/ubuntu/ └─ workspace/ ├─ project/ │ └─ 스프링 프로젝트 └─ tools/ └─ jdk-17/ ├─ bin/ ├─ lib/ └─ ...

8. 최종 점검 체크리스트

[최종 점검] ├─ Linux용 JDK를 설치했는가 ├─ JAVA_HOME JDK 루트를 가리키는가 ├─ PATH 에 $JAVA_HOME/bin 이 등록되었는가 ├─ java -version 이 정상 출력되는가 ├─ javac -version 이 정상 출력되는가 └─ which java 결과가 의도한 경로인가
확인 명령:
echo $JAVA_HOME which java java -version javac -version

9. 권장 결론

일반적인 Ubuntu 사용: -> apt install openjdk-17-jdk 권장 설치 경로를 직접 지정해야 함: -> Linux/x64 tar.gz 수동 설치 권장

10. 실사용 예시

apt 방식

sudo apt update sudo apt install -y openjdk-17-jdk readlink -f $(which java) nano ~/.bashrc source ~/.bashrc java -version javac -version

수동 설치 방식

mkdir -p /home/ubuntu/workspace/tools cd /home/ubuntu/workspace/tools tar -xzf /mnt/c/Users/사용자명/Downloads/openjdk-17_linux-x64_bin.tar.gz mv jdk-17.0.1 jdk-17 echo 'export JAVA_HOME=/home/ubuntu/workspace/tools/jdk-17' >> ~/.bashrc echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.bashrc source ~/.bashrc chmod +x /home/ubuntu/workspace/tools/jdk-17/bin/* java -version javac -version which java
 
Share article