간단한 Java 애플리케이션 생성
JAR 파일로 패키징할 간단한 Java 애플리케이션을 생성하는 것으로 시작해 보겠습니다. 이는 'no main manifest attribute' 오류를 시연하고 나중에 수정하는 데 도움이 될 것입니다.
Java 클래스 생성
먼저, Java 소스 파일을 위한 디렉토리를 생성하고 해당 디렉토리로 이동합니다.
cd ~/project/src/com/example
이제 편집기를 열고 이 디렉토리에 HelloWorld.java라는 새 파일을 생성합니다.
- WebIDE 의 왼쪽 사이드바에서 "Explorer" 아이콘을 클릭합니다.
/home/labex/project/src/com/example로 이동합니다.
- 마우스 오른쪽 버튼을 클릭하고 "New File"을 선택합니다.
- 파일 이름을
HelloWorld.java로 지정합니다.
HelloWorld.java 파일에 다음 코드를 추가합니다.
package com.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
이것은 실행될 때 콘솔에 "Hello, World!"를 출력하는 main 메서드를 가진 기본적인 Java 프로그램입니다.
Java 클래스 컴파일
이제 Java 클래스를 컴파일해 보겠습니다. 터미널로 돌아가 프로젝트 루트 디렉토리로 이동합니다.
cd ~/project
javac 명령을 사용하여 Java 파일을 컴파일합니다.
javac -d . src/com/example/HelloWorld.java
이 명령은 Java 소스 파일을 컴파일하고 패키지 이름을 기반으로 컴파일된 클래스 파일을 적절한 디렉토리 구조에 배치합니다.
이제 ~/project/com/example/HelloWorld.class에 컴파일된 클래스 파일이 있어야 합니다. 다음 명령으로 확인할 수 있습니다.
ls -l com/example/
출력은 HelloWorld.class 파일을 표시해야 합니다.
total 4
-rw-r--r-- 1 labex labex 426 [date] HelloWorld.class
매니페스트 없이 기본 JAR 파일 생성
이제 매니페스트에서 main 클래스를 지정하지 않고 JAR 파일을 생성해 보겠습니다. 이를 통해 'no main manifest attribute' 오류를 재현할 수 있습니다.
jar cf HelloWorld.jar com/
이 명령은 컴파일된 클래스 파일을 포함하는 HelloWorld.jar라는 JAR 파일을 생성합니다.
JAR 파일 실행 시도
이제 JAR 파일을 생성했으므로 실행해 보겠습니다.
java -jar HelloWorld.jar
다음 오류 메시지가 표시됩니다.
no main manifest attribute, in HelloWorld.jar
이것이 우리가 수정하려는 오류입니다. JAR 의 매니페스트에서 main 클래스를 지정하지 않았기 때문에 JVM 이 실행할 main 클래스를 찾을 수 없습니다.