Monday, October 02, 2006
자바/Java: jar 에러] Failed to load Main-Class manifest attribute from
클래스 압축 파일인 jar 파일을 만든 후 실행할 때,
---------------------------
Java Virtual Machine Launcher
---------------------------
Failed to load Main-Class manifest attribute from
D:\Z\Foo.jar
---------------------------
확인
---------------------------
이런 에러가 나게 됩니다.
MANIFEST.MF 파일에 Main-Class 를 지정하지 않았다는 에러입니다.
적어도 현재 자바 5.0 (=1.5)에서는, Main-Class 를 자동으로 지정해 주지 않더군요.
우선 MANIFEST.MF 라는 텍스트 파일을 만들어야 합니다.
MANIFEST.MF 파일의 내용:
만약 프로그램 이름, 즉 "public static void main(String args[])..." 이런 메인 메소드가 있는 클래스 이름이 Foo.class 라면
Main-Class: Foo
이렇게 적어 줍니다. 그런 후 Main-Class: Foo 밑에서 엔터키를 한 번 쳐서 빈 줄을 만들어 줍니다. 그런 후 저장합니다.
이제 도스창(명령 프롬프트)에서
jar cfvm Foo.jar MANIFEST.MF Foo.class
이런 명령을 주면
이렇게 Foo.jar 라는 파일이 만들어집니다.
만약 Foo.class 가 GUI 프로그램이라면, 그냥 윈도 탐색기 (Windows Explorer)에서, Foo.jar 를 클릭해도 실행됩니다. (▶▶ 자바/Java] GUI 기초, 기본 창(윈도) 만들기: Java Example, Simple Window)
그런데 Foo.class 가 콘솔용 프로그램 즉 텍스트 모드라면(▶▶ [자바/Java 기초] 간단한 자바 예제, 테스트용으로 쓸 'Hello, World' 소스), 도스창에서 이렇게 실행해야 합니다:
java -jar Foo.jar
이렇게 하지 않으면 화면에 글자가 나오지 않게 됩니다.
---------------------------
Java Virtual Machine Launcher
---------------------------
Failed to load Main-Class manifest attribute from
D:\Z\Foo.jar
---------------------------
확인
---------------------------
이런 에러가 나게 됩니다.
MANIFEST.MF 파일에 Main-Class 를 지정하지 않았다는 에러입니다.
적어도 현재 자바 5.0 (=1.5)에서는, Main-Class 를 자동으로 지정해 주지 않더군요.
jar 에러 해결법
우선 MANIFEST.MF 라는 텍스트 파일을 만들어야 합니다.
MANIFEST.MF 파일의 내용:
Main-Class: Foo
만약 프로그램 이름, 즉 "public static void main(String args[])..." 이런 메인 메소드가 있는 클래스 이름이 Foo.class 라면
Main-Class: Foo
이렇게 적어 줍니다. 그런 후 Main-Class: Foo 밑에서 엔터키를 한 번 쳐서 빈 줄을 만들어 줍니다. 그런 후 저장합니다.
이제 도스창(명령 프롬프트)에서
jar cfvm Foo.jar MANIFEST.MF Foo.class
이런 명령을 주면
D:\Z>jar cfvm Foo.jar MANIFEST.MF Foo.class
추가된 manifest
추가 중: Foo.class(내부 = 688) (외부= 501)(27%가 감소되었습니다.)
D:\Z>
추가된 manifest
추가 중: Foo.class(내부 = 688) (외부= 501)(27%가 감소되었습니다.)
D:\Z>
이렇게 Foo.jar 라는 파일이 만들어집니다.
만약 Foo.class 가 GUI 프로그램이라면, 그냥 윈도 탐색기 (Windows Explorer)에서, Foo.jar 를 클릭해도 실행됩니다. (▶▶ 자바/Java] GUI 기초, 기본 창(윈도) 만들기: Java Example, Simple Window)
그런데 Foo.class 가 콘솔용 프로그램 즉 텍스트 모드라면(▶▶ [자바/Java 기초] 간단한 자바 예제, 테스트용으로 쓸 'Hello, World' 소스), 도스창에서 이렇게 실행해야 합니다:
java -jar Foo.jar
이렇게 하지 않으면 화면에 글자가 나오지 않게 됩니다.
tag: java
자바 | Java
<< Home