개요
java 명령어는 자바 런타임 환경(JRE)의 핵심 구성 요소로, 자바 바이트코드를 실행합니다. 주로 .jar 파일이나 개별 .class 파일을 실행하는 데 사용되며, 개발 및 운영 환경에서 자바 기반의 모든 소프트웨어를 구동하는 데 필수적입니다.
주요 기능
- 컴파일된 자바 애플리케이션(.jar, .class) 실행
- JVM 메모리 및 성능 설정 제어
- 클래스 경로(Classpath) 지정
- 시스템 속성(System Properties) 정의
설치
대부분의 리눅스 배포판에는 자바가 기본으로 설치되어 있지 않습니다. OpenJDK를 설치하는 것이 일반적이며, 특정 버전(예: Java 11, Java 17)을 선택하여 설치할 수 있습니다.
Debian/Ubuntu (APT)
sudo apt update
sudo apt install default-jre
가장 최신 OpenJDK JRE를 설치합니다.
CentOS/RHEL/Fedora (YUM/DNF)
sudo yum install java-latest-openjdk
가장 최신 OpenJDK JRE를 설치합니다.
설치 확인
설치 후 다음 명령어로 자바 버전을 확인할 수 있습니다.
자바 버전 확인
java -version
주요 옵션
java 명령어는 애플리케이션 실행 방식과 JVM 동작을 제어하는 다양한 옵션을 제공합니다.
기본 실행
클래스 경로 및 모듈
JVM 메모리 설정
시스템 속성 및 기타
생성된 명령어:
명령어를 조합해 보세요.
설명:
`java` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
자바 애플리케이션을 실행하는 다양한 시나리오입니다.
JAR 파일 실행
java -jar myapp.jar
실행 가능한 `myapp.jar` 파일을 실행합니다.
클래스 파일 실행
java MyMainClass
`MyMainClass.class` 파일을 실행합니다. 현재 디렉토리가 클래스 경로에 포함되어 있다고 가정합니다.
클래스 경로 지정하여 실행
java -cp "./lib/*:." com.example.Main
`lib` 디렉토리의 모든 JAR 파일과 현재 디렉토리의 클래스를 포함하여 `com.example.Main` 클래스를 실행합니다.
최대 힙 메모리 설정
java -Xmx2g -jar myapp.jar
JVM의 최대 힙 메모리를 2GB로 설정하여 `myapp.jar`을 실행합니다.
시스템 속성 설정
java -Dapp.env=production -jar myapp.jar
`myapp.jar`을 실행하면서 `app.env` 속성을 `production`으로 설정합니다.
모듈 실행 (Java 9+)
java --module-path /path/to/modules --module mymodule/com.example.Main
`mymodule` 내의 `com.example.Main` 클래스를 실행합니다.
팁 & 주의사항
자바 애플리케이션 실행 시 유용한 팁과 주의할 점입니다.
JAVA_HOME 환경 변수
많은 자바 기반 애플리케이션과 빌드 도구(Maven, Gradle 등)는 `JAVA_HOME` 환경 변수를 사용하여 자바 설치 경로를 찾습니다. 이 변수를 설정하는 것이 좋습니다.
- 예시: export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin
메모리 설정 최적화
애플리케이션의 메모리 사용량에 따라 `-Xmx` (최대 힙) 및 `-Xms` (초기 힙) 옵션을 적절히 설정하는 것이 중요합니다. 너무 작으면 `OutOfMemoryError`가 발생하고, 너무 크면 시스템 리소스를 불필요하게 소모할 수 있습니다.
- 권장 사항: 일반적으로 `-Xms`를 `-Xmx`의 1/4 ~ 1/2 정도로 설정하여 힙 확장을 줄이는 것이 성능에 도움이 될 수 있습니다.
클래스 경로 문제 해결
`ClassNotFoundException`이나 `NoClassDefFoundError`가 발생하면 `-cp` 또는 `-classpath` 옵션에 올바른 경로가 지정되었는지 확인해야 합니다. JAR 파일 내의 클래스를 포함하려면 JAR 파일 자체를 클래스 경로에 추가해야 합니다.
- 팁: 와일드카드(`*`)를 사용하여 디렉토리 내의 모든 JAR 파일을 클래스 경로에 추가할 수 있습니다 (예: `java -cp "lib/*" MyMainClass`).
여러 자바 버전 관리
시스템에 여러 버전의 자바가 설치되어 있을 경우, `update-alternatives` 명령어를 사용하여 기본 자바 버전을 설정하거나, `JAVA_HOME`을 특정 버전으로 지정하여 사용할 수 있습니다.
- 예시 (Debian/Ubuntu): sudo update-alternatives --config java