라즈베리파이 5에 JDK 21을 설치할 일이 생겨 정리 차원에서 적어 둡니다.
일반적인 JDK 설치
apt(또는 apt-get)를 사용하면 JDK를 쉽게 설치할 수 있습니다.
sudo apt install default-jdk
이렇게 설치하고 나면, 바로 java나 javac를 사용할 수 있습니다. 그런데 이런 기본적인 방법의 한계는 최신 버전이나 원하는 버전의 JDK를 설치하기가 쉽지 않습니다.
를 보면 글 쓰는 시점을 기준으로 라즈베리파이 OS의 기반이 되는 Debian booworm 버전의 JDK 최신 버전은 17입니다.
JDK 21 설치
JDK 21 설치를 위해 먼저 어떤 OpenJDK를 사용할지를 선택해야 합니다. OpenJDK는 다양한 빌드가 존재하는데요, 해당 목록은 다음의 위키피디아 페이지에 잘 나와 았습니다.
https://en.wikipedia.org/wiki/OpenJDK#OpenJDK_builds
저는 Eclipse Temurin으로 선택했습니다. 전에 얼핏 성능이 괜찮다는 얘기를 들은 적이 있어서 선택하기는 했는데, 굳이 성능이 좋지 않아도 되는 상황이라 더 자세히 살피지는 않았습니다.
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4%2B7/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.4_7.tar.gz
tar xvfz OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.4_7.tar.gz
# Java를 설치한 적이 없는 경우에만 /usr/lib/jvm 디렉토리를 만들어 줍니다.
sudo mkdir /usr/lib/jvm
sudo mv jdk-21.0.4+7 /usr/lib/jvm/
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-21.0.4+7/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-21.0.4+7/bin/javac 1
위와 같이 설치를 한 후에 다음과 같은 명령어로 주 JDK 버전을 지정합니다. 라즈베리파이에 JDK를 설치한 적이 없다면 하지 않아도 됩니다.
sudo update-alternatives --config java
만약 "일반적인 JDK 설치" 대로 JDK를 설치한 후에 설치하는 경우라면 다음과 같은 식으로 나옵니다.
JDK 21의 번호를 입력하고 엔터를 치면 됩니다. JDK를 설치한 적이 없는 경우에는 다음과 같이 출력됩니다.
이렇게 하면 /usr/bin에 java와 java가 심볼릭 링크가 생성되어 경로 지정 없이 바로 java와 javac를 사용할 수 있습니다.
java --version 확인해 보면 다음과 같이 잘 실행되는 것을 확인할 수 있습니다.
추가적으로, JAVA_HOME 환경 변수 등록과 bin 디렉토리를 경로에 추가하기 위해 /etc/profile의 맨 마지막에 다음과 같은 내용을 추가힙니다. 기본적으로 java와 javac는 /usr/bin에 심볼릭 링크가 생성되어 바로 사용할 수 있지만, bin 디렉토리는 있는 javadoc같은 다른 실행 파일들의 실행 편의성을 위해 Java 홈 디렉토리 밑의 bin 디렉토리를 경로에 추가합니다.
sudo vi /etc/profile
# 다음 두 줄을 /etc/profile 맨 밑에 추가하고 저장
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.4+7
export PATH=$PATH:$JAVA_HOME/bin
재로그인 하거나 source /etc/profile 를 실행하면 모든 사항이 다 반영됩니다.
'생활코딩' 카테고리의 다른 글
라즈베리파이 - Docker Registry 서버 설치 (0) | 2024.10.22 |
---|---|
라즈베리파이 - nginx - ModSecurity 설치 (3) | 2024.10.20 |
라즈베리파이 - Git 서버 설치하기 (Gitea) (2) | 2024.10.17 |
라즈베리파이 MySQL 설치 (2) | 2024.09.30 |
라즈베리파이를 사용한 음성 전달 웹앱 만들기 (1) | 2024.02.23 |