Windows에서 OpenJDK 11 환경 변수 설정 및 개발 환경 구축

JDK 배포판 선택 가이드

Oracle JDK 11부터는 상업적 사용 시 유료 라이선스가 적용됩니다. 개인 개발자와 기업 모두 OpenJDK 기반 배포판 사용을 권장합니다.

배포판제공 주체특징
Eclipse TemurinEclipse Foundation무료, LTS 지원, 커뮤니티 기반
Amazon CorrettoAWS클라우드 최적화, AWS 통합
Azul ZuluAzul Systems다양한 플랫폼 지원
Microsoft Build of OpenJDKMicrosoftAzure 최적화
Alibaba DragonwellAlibaba대규모 분산 환경 최적화

본 문서에서는 Eclipse Temurin JDK 11을 기준으로 설명합니다.

1. 환경 변수 설정

1.1 JDK 설치

설치 마법사 실행 시 설치 경로를 간단하게 설정합니다. 예: C:\jdk11

1.2 시스템 환경 변수 구성

Win + Pause고급 시스템 설정환경 변수 클릭

시스템 변수 새로 만들기:

변수 이름: JDK_ROOT
변수 값:  C:\jdk11

Path 변수 편집:

%JDK_ROOT%\bin

CLASSPATH 설정 (선택사항):

변수 이름: CLASSPATH
변수 값:  .;%JDK_ROOT%\lib

💡 참고: JDK 9 이후 tools.jardt.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 Greeting

2.3 패키지 구조로 실행

# 디렉터리 구조
# src/
#   └── com/
#       └── example/
#           └── Application.java

# 컴파일 (패키지 구조 자동 생성)
javac -d out src/com/example/Application.java

# 실행
java -cp out com.example.Application

3. 외부 라이브러리 의존 시 컴파일

# 단일 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.Main

4. 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

해결 방법:

  1. 에러 마커(×) 클릭
  2. Quick Fix 선택
  3. 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-jdk

6.2 환경 변수 설정

sudo nano /etc/profile.d/jdk.sh
export 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 Greeting

7.2 VS Code 디버그 설정

.vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "현재 파일 디버그",
            "request": "launch",
            "mainClass": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

태그: OpenJDK Java 11 Eclipse Temurin VS Code Windows

6월 14일 23:19에 게시됨