JAVA

Java 개발 환경 한방에 세팅하기 (JDK + IntelliJ + Hello World)

IT Lab 2026. 2. 12. 23:42

SDKMAN!으로 JDK 17을 설치하고 IntelliJ IDEA에서 프로젝트를 만들고 첫 Hello World까지 한 번에 끝냅니다.

 

Java를 다시 시작하려고 하면 생각보다 먼저 막히는 지점이 있어요. “JDK는 뭘 깔아야 하지?”, “IntelliJ에서 왜 실행이 안 되지?” 같은 환경 설정 문제입니다. 이 글에서는 설치부터 실행까지, 한 번에 끊기지 않게 연결해 드릴게요.

핵심 개념: Java 개발 환경에서 진짜 중요한 건 “버전 고정”입니다

개발 환경 세팅에서 가장 중요한 포인트는 JDK를 ‘설치’하는 것 자체가 아니라, 프로젝트마다 JDK 버전을 ‘일관되게’ 쓰는 것입니다. 팀원마다 JDK 17, 21, 혹은 다른 벤더(Temurin, Oracle 등)를 섞어 쓰면, 로컬에서는 되던 코드가 CI에서 깨지거나(특히 빌드/테스트), IntelliJ에서만 빨간 줄이 생기는 일이 자주 나요.

그래서 추천하는 흐름은 이렇습니다.

  1. JDK는 SDKMAN!으로 설치/전환해서 버전 관리 비용을 줄입니다.
  2. IntelliJ에서는 Project SDK와 Language Level을 명확히 맞춥니다.
  3. “Hello World”로 끝내지 말고, 실행 방식(IDE 실행 vs Gradle/Maven 실행) 차이를 한 번만 확인해 두면 이후가 편해요.

아래 표는 실무에서 흔히 고민하는 “JDK 설치 방식”을 간단히 비교한 것입니다.

방식 장점 단점 추천 상황
SDKMAN! 버전 설치/전환이 빠름, CLI로 자동화 쉬움 Windows는 기본 지원이 약함(WSL 권장) macOS/Linux, 여러 JDK 버전 병행
OS 패키지 매니저(brew/apt) 설치가 단순 버전 전환/공존이 번거로울 수 있음 단일 버전만 쓸 때
벤더 설치파일(Oracle/Temurin) GUI로 쉬움 버전 관리가 수동, 팀 표준화 어려움 개인 PC 단일 목적, GUI 선호

기준은 Java 17 LTS입니다. Java 21도 LTS라 새 프로젝트라면 21을 선택해도 좋지만, 이 글은 “가장 무난한 표준”으로 17을 기준으로 진행합니다.

코드 예제: SDKMAN! + IntelliJ 설정 + Hello World (복붙 실행)

아래 순서대로 하면 “설치 → 설정 → 실행”이 한 번에 이어집니다.

1) SDKMAN! 설치 (macOS/Linux)

터미널에서 실행합니다.

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version

2) JDK 17 설치 및 기본 버전 지정

SDKMAN!에서는 JDK 배포판을 “candidate”로 관리합니다. 보통 Temurin(Adoptium) 을 많이 씁니다.

sdk list java
sdk install java 17.0.10-tem
sdk default java 17.0.10-tem
java -version
javac -version

버전 문자열(예: 17.0.10-tem)은 시점에 따라 달라질 수 있어요. sdk list java에서 최신 17 Temurin을 골라 설치해 보세요.

3) IntelliJ IDEA 설정 체크 포인트

IntelliJ에서 프로젝트를 만들 때 아래 2가지만 확실히 맞추면, 대부분의 “왜 실행이 안 되지?”가 사라집니다.

  • Project SDK: 설치한 JDK 17 선택
  • Language level: SDK default(17) 또는 Java 17로 맞춤

경로:

  • macOS: IntelliJ IDEA > Settings(Preferences) > Build, Execution, Deployment > Build Tools(Gradle/Maven 사용 시)
  • 공통: File > Project Structure > Project

Gradle을 쓴다면(초보자도 자주 선택하는 방식), 추가로 이 설정을 권장합니다.

  • Settings > Build Tools > Gradle > Gradle JVMProject SDK(JDK 17) 로 지정
    • 이게 다르면 “코드는 17인데 Gradle은 11로 빌드” 같은 혼란이 생깁니다.

4) 첫 Hello World (바로 실행 가능한 단일 파일)

IntelliJ에서 새 프로젝트(“Java”)를 만들고 src/Main.java로 아래 코드를 저장한 뒤 실행해 보세요.

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, Java 17!");
        System.out.println("Java version: " + System.getProperty("java.version"));
        System.out.println("Java vendor : " + System.getProperty("java.vendor"));
    }
}
  • IntelliJ의 실행 버튼(▶)으로 실행해도 되고,
  • 터미널에서 컴파일/실행해도 됩니다.
javac Main.java
java Main

(선택) “JDK 선택 → 컴파일 → 실행” 흐름 한눈에 보기

JDK 선택부터 IntelliJ/Gradle 설정, 컴파일과 실행까지 이어지는 Java 개발 환경 흐름도

 

 

flowchart LR
  A["JDK 설치/선택 (SDKMAN!)"] --> B["IDE(Project SDK) 설정"]
  B --> C[javac 컴파일]
  C --> D[java 실행]
  B --> E["Gradle/Maven JVM 설정"]
  E --> C

JDK 버전이 IDE와 빌드 도구에서 일치해야 결과가 안정적으로 나옵니다.

실무 팁

💡 실무에서는: “프로젝트별 JDK 고정”을 습관처럼 가져가세요

  • SDKMAN!을 쓰면 프로젝트 폴더에서 sdk env init.sdkmanrc를 만들고, 해당 디렉터리 진입 시 JDK를 자동 전환할 수 있어요.
  • 팀에서 “이 레포는 JDK 17”처럼 레포 단위로 기준을 고정하면, 온보딩 시간이 확 줄어듭니다.

💡 실무에서는: IntelliJ에서 빨간 줄이 보이면 “Gradle JVM”부터 확인해 보세요

  • 코드는 JDK 17 문법인데, Gradle JVM이 11로 잡혀 있으면 빌드가 실패하거나 IDE 인덱싱이 꼬일 수 있습니다.
  • 특히 멀티모듈/레거시 프로젝트에서 이 문제가 자주 나오니, Gradle JVM = Project SDK를 기본값처럼 맞춰두는 게 안전합니다.

핵심 요약: SDKMAN!으로 JDK 17을 설치하고 기본 버전을 고정하세요.
IntelliJ의 Project SDK와 (Gradle/Maven 사용 시) 빌드 JVM을 같은 JDK로 맞추는 게 가장 중요합니다.
Hello World로 버전/벤더까지 출력해 보면 환경이 제대로 잡혔는지 바로 확인할 수 있어요.

다음 글: #03 변수와 타입 — 이것만 알면 된다