Ch 1.2 자바 개발 환경 구축
자바 개발을 시작하기 위해서는 크게 두 가지가 필요합니다. 코드를 기계어로 번역해주는 JDK 와 코드를 편리하게 작성하게 해주는 IDE 입니다. 이 챕터에서는 JDK 21 설치부터 첫 프로그램 실행까지 단계별로 안내합니다.
1. JDK란?
JDK(Java Development Kit) 는 자바 프로그램을 개발하고 실행하는 데 필요한 도구들의 모음입니다.
| 도구 | 역할 |
|---|---|
| javac | 소스코드(.java)를 바이트코드(.class)로 컴파일 |
| java | JVM을 실행하여 .class 파일 실행 |
| javadoc | 소스코드 주석으로부터 HTML 문서 생성 |
| jar | 여러 .class 파일을 하나의 .jar 파일로 묶음 |
| jdb | 자바 디버거 |
JDK 배포판 선택
자바는 유료 버전(Oracle JDK)과 무료 버전(OpenJDK)이 있습니다. 학습 및 개인 프로젝트에는 무료 OpenJDK 기반 배포판 을 권장합니다.
| 배포판 | 제공사 | 특징 |
|---|---|---|
| OpenJDK | Oracle | 공식 오픈소스 구현체 |
| Amazon Corretto | Amazon | AWS 최적화, 무료 장기 지원 |
| Eclipse Temurin | Eclipse Foundation | Adoptium 프로젝트, 가장 많이 사용 |
| Azul Zulu | Azul | 다양한 플랫폼 지원 |
| GraalVM | Oracle | 네이티브 이미지 컴파일 지원 |
학습용으로는 Eclipse Temurin 21 LTS 또는 Amazon Corretto 21 LTS 를 권장합니다. 둘 다 무료이며 장기 지원이 보장됩니다.
2. JDK 21 설치
2.1 Windows 설치
방법 1: 공식 설치 파일 사용 (권장)
- Eclipse Temurin 다운로드 페이지 접속
- Java 21 (LTS) 선택 후 Windows x64 .msi 다운로드
- 다운로드된
.msi파일 실행 - 설치 옵션에서 "Set JAVA_HOME variable" 과 "Add to PATH" 체크 확인
- 설치 완료 후 명령 프롬프트(cmd) 재시작
방법 2: winget (Windows Package Manager) 사용
# PowerShell 또는 cmd에서 실행
winget install EclipseAdoptium.Temurin.21.JDK
설치 확인:
java -version
javac -version
출력 예시:
openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
javac 21.0.2
2.2 macOS 설치
방법 1: Homebrew 사용 (권장)
# Homebrew 설치 (없는 경우)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Temurin JDK 21 설치
brew install --cask temurin@21
# 설치 확인
java -version
javac -version
방법 2: 공식 설치 파일 사용
- Eclipse Temurin 다운로드 페이지 접속
- Java 21 (LTS) 선택 후 macOS aarch64 (M1/M2/M3) 또는 x64 (Intel) 선택
.pkg파일 다운로드 후 실행- 화면 안내에 따라 설치 완료
여러 버전 관리 (SDKMAN):
# SDKMAN 설치
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Java 21 설치
sdk install java 21.0.2-tem
# 설치된 버전 목록 확인
sdk list java
# 버전 전환
sdk use java 21.0.2-tem
2.3 Linux (Ubuntu/Debian) 설치
# 패키지 목록 업데이트
sudo apt update
# Temurin 저장소 추가
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
sudo tee /etc/apt/keyrings/adoptium.asc
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] \
https://packages.adoptium.net/artifactory/deb \
$(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
# JDK 21 설치
sudo apt install temurin-21-jdk
# 설치 확인
java -version
javac -version
여러 JDK 버전이 있을 때 전환:
sudo update-alternatives --config java
3. 환경 변수 설정 (JAVA_HOME)
JAVA_HOME은 JDK 설치 경로를 가리키는 환경 변수입니다. Maven, Gradle 등 많은 도구가 이 변수를 참조합니다.
3.1 Windows 환경 변수 설정
GUI 방법:
- 윈도우 키 + R →
sysdm.cpl입력 후 엔터 - 고급 탭 → 환경 변수 버튼 클릭
- 시스템 변수에서 새로 만들기 클릭
- 변수 이름:
JAVA_HOME - 변수 값:
C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot(실제 설치된 경로 확인 필요)
- 변수 이름:
- 시스템 변수에서 Path 선택 → 편집→ 새로 만들기
%JAVA_HOME%\bin추가
- 모든 창 확인(OK) 후 cmd를 재시작
PowerShell 방법 (관리자 권한 필요):
# JAVA_HOME 설정
[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot",
"Machine"
)
# PATH에 추가
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
[System.Environment]::SetEnvironmentVariable(
"Path",
"$currentPath;%JAVA_HOME%\bin",
"Machine"
)
설정 확인:
echo %JAVA_HOME%
# C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot
java -version
3.2 macOS 환경 변수 설정
# JDK 설치 경로 확인
/usr/libexec/java_home -v 21
# ~/.zshrc 또는 ~/.bash_profile에 추가
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
# 설정 적용
source ~/.zshrc
# 확인
echo $JAVA_HOME
java -version
3.3 Linux 환경 변수 설정
# JDK 설치 경로 확인
which java
readlink -f $(which java)
# 예: /usr/lib/jvm/temurin-21-amd64/bin/java
# ~/.bashrc 또는 ~/.profile에 추가
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-21-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
# 설정 적용
source ~/.bashrc
# 확인
echo $JAVA_HOME
java -version
4. IDE 설치 및 설정
4.1 IntelliJ IDEA Community 설치 (권장)
IntelliJ IDEA는 현대 자바 개발에서 가장 대중적으로 사용되는 IDE입니다.
| 버전 | 가격 | 주요 기능 |
|---|---|---|
| Community | 무료 | Java, Kotlin, 일반 개발 |
| Ultimate | 유료 | 웹 프레임워크, DB, Spring 전용 기능 |
학습 목적이라면 Community 버전으로 충분합니다. 학생 이메일이 있다면 JetBrains Student License로 Ultimate 버전을 무료로 사용할 수 있습니다.
설치 단계:
- JetBrains 다운로드 접속
- Community 탭에서 운영체제에 맞는 설치 파일 다운로드
- 설치 파일 실행 후 기본 옵션으로 설치
첫 번째 프로젝트 생성:
- IntelliJ IDEA 실행 → New Project 클릭
- Java 선택
- JDK 항목에서 설치한 JDK 21 선택 (없으면 Download JDK 클릭)
- 프로젝트명 입력:
HelloJava - 저장 위치 선택 후 Create 클릭
src폴더 우클릭 → New→ Java Class- 클래스명:
HelloWorld입력
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, IntelliJ IDEA!");
}
}
- 에디터 왼쪽 초록색 삼각형(▶) 클릭 또는
Shift + F10으로 실행
IntelliJ 필수 단축키:
| 단축키 | 기능 |
|---|---|
psvm + Tab | public static void main(String[] args) 자동 완성 |
sout + Tab | System.out.println() 자동 완성 |
Shift + F10 | 프로그램 실행 |
Shift + F9 | 디버그 모드 실행 |
Ctrl + Space | 코드 자동 완성 |
Alt + Enter | 빠른 수정 제안 |
Ctrl + / | 한 줄 주석 토글 |
Ctrl + Shift + F | 전체 검색 |
4.2 VS Code + Extension Pack for Java
VS Code도 적절한 확장을 설치하면 강력한 자바 IDE로 활용할 수 있습니다.
설치 단계:
- VS Code 다운로드 및 설치
- VS Code 실행 후 Extensions 탭 (Ctrl + Shift + X)
- "Extension Pack for Java" 검색 후 설치
- 이 팩에는 Language Support for Java, Debugger for Java, Maven for Java 등이 포함됨
- 명령 팔레트 (Ctrl + Shift + P) →
Java: Create Java Project실행 - 프로젝트 타입 선택: No build tools(초보자 권장)
- 프로젝트 저장 위치 선택 후 프로젝트명 입력
VS Code settings.json 권장 설정:
{
"java.home": "C:/Program Files/Eclipse Adoptium/jdk-21.0.2.13-hotspot",
"editor.formatOnSave": true,
"editor.tabSize": 4,
"files.autoSave": "onFocusChange"
}
5. 첫 번째 프로그램: Hello World
IDE 없이 터미널만으로 자바 프로그램을 작성하고 실행해봅니다. 이 과정을 이해하면 자바의 동작 원리를 명확히 파악할 수 있습니다.
5.1 소스 파일 작성
임의의 디렉토리에 Hello.java 파일을 생성합니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
System.out.println("자바 프로그래밍을 시작합니다!");
}
}
파일명은 반드시 클래스명과 동일해야 합니다. 클래스명이 Hello이면 파일명은 Hello.java여야 합니다. 대소문자도 구분합니다.
5.2 컴파일
터미널에서 파일이 있는 디렉토리로 이동 후 컴파일합니다.
# 파일 저장 디렉토리로 이동
cd C:\Users\사용자명\Desktop\java_practice
# 컴파일 (Hello.java → Hello.class 생성)
javac Hello.java
# 컴파일 성공 시 Hello.class 파일 생성 확인
dir # Windows
ls -la # macOS/Linux
컴파일이 성공하면 오류 메시지 없이 Hello.class 파일이 생성됩니다.
5.3 실행
# .class 확장자 없이 클래스명만 입력
java Hello
출력:
Hello, World!
자바 프로그래밍을 시작합니다!
java 명령에는 파일명(Hello.java)이 아닌 클래스명(Hello) 을 입력합니다. .class 확장자도 붙이지 않습니다.
6. 패키지 선언과 디렉토리 구조
자바의 패키지(package)는 클래스를 체계적으로 관리하는 네임스페이스입니다. 패키지 이름과 디렉토리 구조는 반드시 일치해야 합니다.
src/
└── com/
└── example/
└── myapp/
├── Main.java
└── util/
└── Helper.java
// 파일 위치: src/com/example/myapp/Main.java
package com.example.myapp; // 패키지 선언 (최상단에 위치)
import com.example.myapp.util.Helper; // 다른 클래스 임포트
public class Main {
public static void main(String[] args) {
System.out.println("패키지 구조 예제");
Helper.sayHello();
}
}
패키지가 있는 파일 컴파일 및 실행:
# src 디렉토리에서 실행
javac com/example/myapp/Main.java com/example/myapp/util/Helper.java
# 패키지 전체 경로로 실행
java com.example.myapp.Main
7. 빌드 도구 미리보기 (Maven & Gradle)
실제 프로젝트에서는 javac를 직접 사용하는 대신 빌드 도구 를 사용합니다.
Maven
XML 기반 빌드 도구입니다. pom.xml 파일로 의존성과 빌드 설정을 관리합니다.
<!-- pom.xml 기본 구조 -->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<!-- 외부 라이브러리 의존성 -->
</dependencies>
</project>
Gradle
Groovy 또는 Kotlin DSL 기반의 현대적 빌드 도구입니다.
// build.gradle (Groovy DSL)
plugins {
id 'java'
}
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
dependencies {
// 외부 라이브러리 의존성
}
빌드 도구 비교:
| 특성 | Maven | Gradle |
|---|---|---|
| 설정 방식 | XML (pom.xml) | Groovy/Kotlin (build.gradle) |
| 성능 | 보통 | 빠름 (증분 빌드, 캐시) |
| 학습 곡선 | 낮음 | 보통 |
| 사용 사례 | Spring 레거시, 엔터프라이즈 | Android, Spring Boot 신규 프로젝트 |
8. 자주 발생하는 설치 오류 및 해결법
오류 1: 'java'은(는) 내부 또는 외부 명령이 아닙니다
원인: PATH 환경 변수에 JDK bin 디렉토리가 없음
해결:
# Windows: 시스템 속성 → 환경 변수 → Path에 추가
%JAVA_HOME%\bin
# 또는 직접 경로 입력
C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot\bin
오류 2: JAVA_HOME is not set
원인: 빌드 도구(Maven, Gradle)가 JAVA_HOME 환경 변수를 찾지 못함
해결:
# Windows
setx JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot"
# macOS/Linux (~/.zshrc 또는 ~/.bashrc에 추가)
export JAVA_HOME=/usr/lib/jvm/temurin-21
오류 3: Error: Could not find or load main class
원인 1: 패키지 선언이 있는 경우 잘못된 위치에서 실행
# 잘못된 실행 (패키지가 있는 경우)
java HelloWorld
# 올바른 실행
java com.example.HelloWorld # 소스 루트에서 실행
원인 2: .class 확장자를 붙여서 실행
# 잘못된 실행
java Hello.class
# 올바른 실행
java Hello
오류 4: error: class HelloWorld is public, should be declared in a file named HelloWorld.java
원인: 파일명과 public 클래스명 불일치
해결: 파일명을 클래스명과 동일하게 변경 (대소문자 포함)
오류 5: UnsupportedClassVersionError
Error: LinkageError occurred while loading main class Hello
java.lang.UnsupportedClassVersionError: Hello has been compiled by a more
recent version of the Java Runtime (class file version 65.0), this version
of the Java Runtime only recognizes class file versions up to 55.0
원인: 컴파일 JDK 버전 > 실행 JRE 버전 (예: Java 21로 컴파일 후 Java 11로 실행)
해결: 실행 환경의 자바 버전을 컴파일 버전 이상으로 업그레이드
9. 개발 환경 점검 체크리스트
설치가 완료되면 아래 항목을 모두 확인하세요.
# 1. JDK 버전 확인
java -version
# → openjdk version "21.x.x" 출력 확인
# 2. 컴파일러 버전 확인
javac -version
# → javac 21.x.x 출력 확인
# 3. JAVA_HOME 확인
echo %JAVA_HOME% # Windows
echo $JAVA_HOME # macOS/Linux
# → JDK 설치 경로 출력 확인
# 4. 간단한 프로그램 컴파일 및 실행 테스트
echo public class Test { public static void main(String[] a) { System.out.println("OK"); } } > Test.java
javac Test.java && java Test
# → OK 출력 확인
모든 항목이 정상이라면 개발 환경 구축이 완료된 것입니다!
IntelliJ IDEA를 사용한다면 IDE가 JDK를 자동으로 감지합니다. File → Project Structure (Ctrl + Alt + Shift + S) → Project SDK 에서 설치한 JDK 21이 선택되어 있는지 확인하세요.
요약
| 단계 | 내용 |
|---|---|
| 1단계 | JDK 21 LTS 다운로드 및 설치 (Eclipse Temurin 권장) |
| 2단계 | JAVA_HOME 환경 변수 및 PATH 설정 |
| 3단계 | java -version, javac -version으로 설치 확인 |
| 4단계 | IDE 설치 (IntelliJ IDEA Community 권장) |
| 5단계 | 첫 번째 Hello World 프로그램 작성, 컴파일, 실행 |