출시·고도화 중
Java 안내서 · 1/6
Java 프로그램을 만들려면 먼저 JDK(Java Development Kit) 가 필요합니다. JDK에는 소스 코드를 바이트코드로 바꾸는 컴파일러 javac, 바이트코드를 실행하는 JVM 실행기 java, 대화형 셸 jshell, 그리고 jar 같은 도구가 함께 들어 있습니다. 이 장에서는 JDK를 설치하고, 첫 프로그램을 컴파일해 실행하고, 실제 프로젝트의 디렉터리 구조와 편집기 설정까지 살펴봅니다.
JDK는 여러 배포판이 있습니다. 모두 OpenJDK 소스에서 빌드되므로 언어와 표준 라이브러리는 같고, 지원 기간과 라이선스가 조금씩 다릅니다. 처음이라면 무료로 쓸 수 있는 Eclipse Temurin이나 Oracle OpenJDK 빌드를 고르면 무난합니다. 실무에서는 장기 지원(LTS) 버전을 쓰는 경우가 많습니다.
| 방법 | 설명 |
|---|---|
| 설치 파일 | Adoptium이나 jdk.java.net에서 운영체제에 맞는 파일을 내려받습니다 |
| macOS | Homebrew로 brew install openjdk 를 실행합니다 |
| Debian/Ubuntu | sudo apt install default-jdk 로 배포판 기본 JDK를 설치합니다 |
| SDKMAN! | 여러 JDK를 바꿔 가며 써야 할 때 편리한 버전 관리 도구입니다 |
설치가 끝나면 터미널에서 버전을 확인합니다. 두 명령이 모두 버전을 출력하면 준비가 끝난 것입니다.
java -version
javac -version명령을 찾지 못한다는 오류가 나오면 JDK의 bin 디렉터리가 PATH 에 들어 있는지 확인합니다. 빌드 도구와 IDE는 JAVA_HOME 환경 변수로 JDK 위치를 찾는 경우가 많으므로 이 변수도 JDK 설치 경로로 설정해 두는 것이 좋습니다.
Java 코드는 클래스 안에 들어갑니다. 프로그램의 시작점은 public static void main(String[] args) 메서드입니다. 아래 내용을 Hello.java 로 저장합니다. 공개(public) 클래스 이름과 파일 이름은 반드시 같아야 합니다.
public class Hello {
public static void main(String[] args) {
String name = args.length > 0 ? args[0] : "world";
System.out.println("Hello, " + name + "!");
}
}전통적인 방법은 javac 로 컴파일해 .class 파일(바이트코드)을 만든 뒤 java 로 클래스 이름을 지정해 실행하는 것입니다. java 에는 파일 이름이 아니라 클래스 이름을 넘긴다는 점에 주의합니다.
javac Hello.java # Hello.class 생성
java Hello # Hello, world!
java Hello Java # Hello, Java!작은 프로그램이나 스크립트라면 컴파일 단계를 따로 거치지 않아도 됩니다. java 에 .java 파일을 직접 넘기면 메모리에서 컴파일한 뒤 곧바로 실행합니다. 이 방식은 디스크에 .class 파일을 남기지 않습니다.
java Hello.java Java최신 JDK에서는 클래스 선언 없이 void main() 만 적는 간단한 형태의 소스 파일도 지원합니다. 다만 대부분의 자료와 기존 코드는 위의 전통적인 형태를 쓰므로 먼저 그 형태에 익숙해지는 것이 좋습니다.
jshell 은 코드를 한 줄씩 입력하고 결과를 바로 확인하는 REPL입니다. 클래스나 main 메서드 없이 식과 문장을 실행할 수 있어 API를 익히거나 작은 아이디어를 시험할 때 유용합니다. /vars, /methods 로 지금까지 정의한 것을 확인하고, /exit 로 끝냅니다.
jshell> var nums = java.util.List.of(3, 1, 2)
nums ==> [3, 1, 2]
jshell> nums.stream().sorted().toList()
$2 ==> [1, 2, 3]
jshell> "java".toUpperCase()
$3 ==> "JAVA"파일이 여러 개가 되면 Maven이나 Gradle 같은 빌드 도구를 씁니다. 두 도구 모두 다음과 같은 표준 디렉터리 구조를 따릅니다. 패키지 이름은 디렉터리 경로와 일치해야 합니다.
my-app/
├── pom.xml # Maven (Gradle이면 build.gradle.kts)
└── src/
├── main/
│ ├── java/com/example/app/App.java
│ └── resources/ # 설정 파일, 정적 자원
└── test/
└── java/com/example/app/AppTest.javasrc/main/java 에는 제품 코드가 들어갑니다.src/main/resources 의 파일은 클래스패스에 함께 포함됩니다.src/test/java 에는 테스트 코드가 들어가며 배포물에는 포함되지 않습니다.target/, Gradle은 build/ 에 생깁니다.Java는 IDE 지원이 매우 좋은 언어입니다. 대표적인 선택지는 다음과 같습니다.
어떤 IDE든 프로젝트를 열 때 pom.xml 이나 build.gradle.kts 를 인식해 의존성과 소스 경로를 자동으로 설정합니다. 프로젝트에 사용할 JDK를 IDE 설정에서 명시적으로 고르는 것도 잊지 않습니다.
java -version, javac -version 으로 확인합니다.javac 로 컴파일하고 java 클래스이름 으로 실행하거나, java 파일.java 로 바로 실행할 수 있습니다.jshell 은 API와 문법을 빠르게 실험하는 도구입니다.src/main/java, src/test/java 구조와 Maven 또는 Gradle을 사용합니다.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.