JDK 배포판 선택 가이드
Oracle JDK 11부터는 상업적 사용 시 유료 라이선스가 적용됩니다. 개인 개발자와 기업 모두 OpenJDK 기반 배포판 사용을 권장합니다.
| 배포판 | 제공 주체 | 특징 |
|---|---|---|
| Eclipse Temurin | Eclipse Foundation | 무료, LTS 지원, 커뮤니티 기반 |
| Amazon Corretto | AWS | 클라우드 최적화, AWS 통합 |
| Azul Zulu | Azul Systems | 다양한 플랫폼 지원 |
| Microsoft Build of OpenJDK | Microsoft | Azure 최적화 |
| Alibaba Dragonwell | Alibaba | 대규모 분산 환경 최적화 |
본 문서에서는 Eclipse Temurin JDK 11을 기준으로 설명합니다.
1. 환경 변수 설정
1.1 JDK 설치
설치 마법사 실행 시 설치 경로를 간단하게 설정합니다. 예: C:\jdk11
1.2 시스템 환경 변수 구성
Win + Pause → 고급 시스템 설정 → 환경 변수 클릭
시스템 변수 새로 만들기:
변수 이름: JDK_ROOT
변수 값: C:\jdk11Path 변수 편집:
%JDK_ROOT%\binCLASSPATH 설정 (선택사항):
변수 이름: CLASSPATH
변수 값: .;%JDK_ROOT%\lib💡 참고: JDK 9 이후 tools.jar와 dt.jar는 모듈 시스템으로 통합되어 별도 설정이 필요 없습니다.
1.3 설치 확인
javac --version
java --version출력 예시:
javac 11.0.21
openjdk 11.0.21 2023-10-17
OpenJDK Runtime Environment Temurin-11.0.21+9 (build 11.0.21+9)
OpenJDK 64-Bit Server VM Temurin-11.0.21+9 (build 11.0.21+9, mixed mode)2. 기본 파일 및 실행
2.1 간단한 프로그램 작성
// Greeting.java
public class Greeting {
public static void main(String[] arguments) {
String message = "안녕, OpenJDK 11!";
System.out.println(message);
}
}2.2 컴파일과 실행
# 소스 인코딩 지정 (한글 포함 시 필수)
javac -encoding UTF-8 Greeting.java
# 실행
java Greeting2.3 패키지 구조로 실행
# 디렉터리 구조
# src/
# └── com/
# └── example/
# └── Application.java
# 컴파일 (패키지 구조 자동 생성)
javac -d out src/com/example/Application.java
# 실행
java -cp out com.example.Application3. 외부 라이브러리 의존 시 컴파일
# 단일 JAR 의존
javac -cp lib/mysql-connector.jar -d out src/*.java
# 여러 JAR 의존 (Windows)
javac -cp "lib\a.jar;lib\b.jar" -d out src/*.java
# 실행
java -cp "out;lib\mysql-connector.jar" com.example.Main4. VS Code 개발 환경 설정
4.1 필수 확장 설치
- Extension Pack for Java (Microsoft)
4.2 settings.json 설정
{
"java.home": "C:\\jdk11",
"java.configuration.runtimes": [
{
"name": "JavaSE-11",
"path": "C:\\jdk11",
"default": true
}
],
"editor.formatOnSave": true,
"java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml",
"java.format.settings.profile": "GoogleStyle"
}4.3 Code Runner 한글 출력 설정
{
"code-runner.runInTerminal": true,
"code-runner.executorMap": {
"java": "cd $dir && javac -encoding UTF-8 $fileName && java $fileNameWithoutExt"
}
}5. Java 9 모듈 시스템 관련 이슈
Java 9부터 java.desktop, java.sql 등은 명시적 모듈 의존 선언이 필요합니다.
5.1 Eclipse에서 javax.sound 미인식 해결
에러 메시지:
The import javax.sound cannot be resolved해결 방법:
- 에러 마커(×) 클릭
- Quick Fix 선택
Add 'requires java.desktop' to module-info.java선택
생성된 module-info.java:
module myapp {
requires java.desktop;
requires java.sql;
}6. Linux (Debian/Ubuntu) 환경 설정
6.1 설치
# DEB 패키지 설치
sudo dpkg -i temurin-11-jdk_amd64.deb
# 또는 APT 저장소 사용
sudo apt-get install temurin-11-jdk6.2 환경 변수 설정
sudo nano /etc/profile.d/jdk.shexport JDK_PATH="/usr/lib/jvm/temurin-11-jdk-amd64"
export PATH="$PATH:$JDK_PATH/bin"# 즉시 적용
source /etc/profile.d/jdk.sh
# 영구 적용을 위해 재부팅 또는 로그아웃/로그인7. 디버깅 기본
7.1 명령줄 디버깅
# 디버그 정보 포함 컴파일
javac -g -d out src/Greeting.java
# jdb 실행
jdb -classpath out Greeting7.2 VS Code 디버그 설정
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "현재 파일 디버그",
"request": "launch",
"mainClass": "${file}",
"console": "integratedTerminal"
}
]
}