어쨌든 근본언어는 JDK25 이기에, 오랜만에 Java 공부를 복습겸 시작하였다.
환경은 요즘 잘?쓰고 있는 DGX Spark GB10 이라는 장비다.
AI 덕분에 CLI 환경이 인기를 끌고 있다보니, vi 에 대한 흥미가 다시 끌지 않을까 생각을 한다. 후훗(착각...)
어쨌든 환경 구성 방법이다.
DGX Spark GB10 Ubuntu 24.04에
JDK 25 설치 및 Vim 개발환경 구성
NVIDIA DGX Spark GB10은 ARM64(aarch64) 아키텍처 기반의 Grace CPU를 탑재한 AI 워크스테이션입니다. 이 글에서는 Ubuntu 24.04 환경에서 OpenJDK 25 LTS를 설치하고, Vim + LSP 기반의 경량 Java 개발환경을 단계별로 구성하는 방법을 정리합니다.
apt만으로 설치가 가능합니다. (25.0.2+10 기준)1 시스템 업데이트 및 JDK 25 설치
먼저 패키지 목록을 최신 상태로 갱신한 뒤 OpenJDK 25 JDK를 설치합니다.
# 패키지 목록 업데이트
sudo apt update && sudo apt upgrade -y
# OpenJDK 25 JDK 설치 (컴파일러 + 런타임 포함)
sudo apt install -y openjdk-25-jdk
# 설치 확인
java -version
javac -version
정상 설치 시 아래와 같이 출력됩니다.
openjdk version "25.0.2" 2026-01-20
OpenJDK Runtime Environment (build 25.0.2+10-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 25.0.2+10-Ubuntu-124.04, mixed mode, sharing)
apt로 설치하면 아키텍처가 자동으로 감지됩니다.다중 JDK 버전 관리
JDK 21과 25 등 여러 버전이 공존할 경우 아래 명령으로 기본 버전을 선택합니다.
sudo update-alternatives --config java
sudo update-alternatives --config javac
2 환경변수(JAVA_HOME) 설정
빌드 도구(Maven, Gradle 등)는 JAVA_HOME 환경변수를 통해 JDK 위치를 찾습니다. update-alternatives로 버전을 바꿔도 자동으로 따라가도록 동적으로 설정합니다.
# 시스템 전체 적용 (동적 해석 — 버전 전환 시 자동 반영)
echo 'export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))' \
| sudo tee /etc/profile.d/java.sh
# 현재 세션에 즉시 적용
source /etc/profile.d/java.sh
# 경로 확인
echo $JAVA_HOME
# 예: /usr/lib/jvm/java-25-openjdk-arm64
3 Vim 및 플러그인 매니저 설치
# Vim 및 필수 도구 설치
sudo apt install -y vim curl git wget unzip
# vim-plug 플러그인 매니저 설치
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
4 .vimrc 구성
아래 내용을 ~/.vimrc에 작성합니다. silent! colorscheme gruvbox를 사용하여 플러그인 설치 전 에러를 방지합니다.
" ============================================================
" 기본 설정
" ============================================================
set number relativenumber " 상대 줄 번호
set tabstop=4 shiftwidth=4 expandtab
set autoindent smartindent
set hlsearch incsearch ignorecase smartcase
set cursorline
set signcolumn=yes
set updatetime=300
set encoding=utf-8
syntax on
filetype plugin indent on
" ============================================================
" 플러그인 (vim-plug)
" ============================================================
call plug#begin('~/.vim/plugged')
" LSP 클라이언트 (Java 자동완성 / 정의 이동)
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'
" 파일 탐색기
Plug 'preservim/nerdtree'
" 상태바
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" 문법 강조
Plug 'sheerun/vim-polyglot'
" Git 통합
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
" 괄호 자동 완성
Plug 'jiangmiao/auto-pairs'
" 컬러 테마
Plug 'morhetz/gruvbox'
call plug#end()
" ============================================================
" 테마 — silent! 로 플러그인 미설치 시 에러 방지
" ============================================================
set background=dark
silent! colorscheme gruvbox
" ============================================================
" 단축키
" ============================================================
nnoremap <C-n> :NERDTreeToggle<CR>
" 자동완성 탭 키
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <expr> <CR> pumvisible() ? asyncomplete#close_popup() : "\<CR>"
" LSP 단축키
nnoremap gd :LspDefinition<CR>
nnoremap gr :LspReferences<CR>
nnoremap K :LspHover<CR>
nnoremap <leader>rn :LspRename<CR>
nnoremap <leader>ca :LspCodeAction<CR>
저장 후 플러그인 설치를 실행합니다.
vim +PlugInstall +qall
! 플러그인 설치 시 에러 해결 — gruvbox 미발견
플러그인 설치 전에 .vimrc가 먼저 로드되면서 아래 에러가 발생할 수 있습니다.
E185: 색 스킴 gruvbox을(를) 찾을 수 없습니다
원인
Vim이 시작될 때 .vimrc 전체를 파싱하는데, 이 시점에는 아직 플러그인 디렉터리에 gruvbox가 없기 때문입니다.
해결 방법
colorscheme gruvbox 앞에 silent!를 붙이면 에러를 무시하고 계속 진행합니다.
" 변경 전
set background=dark
colorscheme gruvbox
" 변경 후 — silent! 추가
set background=dark
silent! colorscheme gruvbox
vim +PlugInstall +qall을 다시 실행하면 에러 없이 완료됩니다. 이후 Vim을 열면 gruvbox 테마가 정상 적용됩니다.6 Java LSP (JDTLS) 설치
Java 자동완성과 정의 이동을 위해 Eclipse JDT Language Server를 설치합니다. vim-lsp-settings 플러그인을 통해 자동 설치가 가능합니다.
방법 A — vim-lsp-settings 자동 설치 (권장)
" Java 파일을 열고 명령 실행
:LspInstallServer
방법 B — 수동 설치
mkdir -p ~/.local/share/jdtls
cd ~/.local/share/jdtls
# 최신 마일스톤 버전 다운로드 (ARM64 호환)
wget "https://download.eclipse.org/jdtls/milestones/$(curl -s \
https://download.eclipse.org/jdtls/milestones/ \
| grep -oP '[\d.]+(?=/")' | tail -1)/jdt-language-server-latest.tar.gz"
tar -xzf jdt-language-server-latest.tar.gz
7 빌드 도구 설치 (Maven / Gradle)
Maven
sudo apt install -y maven
mvn -version
Gradle (SDKMAN! 권장)
# SDKMAN! 설치
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Gradle 설치
sdk install gradle
gradle -v
~/.gradle/gradle.properties에 org.gradle.parallel=true를 추가하세요.8 동작 확인
간단한 Java 프로그램을 작성하여 JDK 25 컴파일과 Vim LSP 동작을 검증합니다.
# 테스트 디렉터리 생성
mkdir -p ~/java-test && cd ~/java-test
# Hello.java 생성
cat > Hello.java << 'EOF'
public class Hello {
public static void main(String[] args) {
System.out.println("JDK 25 on DGX Spark GB10!");
var message = "ARM64 + Vim 개발환경 구성 완료";
System.out.println(message);
}
}
EOF
# 컴파일 및 실행
javac Hello.java && java Hello
# Vim으로 열어서 LSP 자동완성 확인
vim Hello.java
정상 실행 시 출력:
JDK 25 on DGX Spark GB10!
ARM64 + Vim 개발환경 구성 완료
9 주요 Vim 단축키 요약
| 단축키 | 기능 | 비고 |
|---|---|---|
| gd | 정의로 이동 (Go to Definition) | LSP |
| gr | 참조 찾기 (Find References) | LSP |
| K | 호버 문서 표시 | LSP |
| <leader>rn | 심볼 이름 변경 (Rename) | LSP |
| <leader>ca | 코드 액션 (Code Action) | LSP |
| Ctrl+n | NERDTree 파일 탐색기 토글 | NERDTree |
| Tab / S-Tab | 자동완성 후보 선택 | asyncomplete |
| :LspInstallServer | LSP 서버 자동 설치 | vim-lsp-settings |
예전 같으면 이곳저곳 집단지식을 모아 실습해보고 나의 현황에 맞게 수정하고 올릴텐데,
요즘은 AI에게 그냥 물어보면 끝~ 이어서 너무 좋다.
그러다 보니 이런 블로그글 보다 구축하고 싶은 사람들에게 그냥 AI에게 물어보세요~ 해도 될듯...