Error Record

no main manifest attribute, in *.jar

F12:) 2023. 8. 30. 00:10

문제

스프링 프로젝트를 진행하다가, 클라우드에 띄우기 위해서 도커파일을 작성해야했다. 도커파일을 작성하기 위해 자바에서는 .jar 파일이 필요했고, 나는 처음에 gradle의 jar 를 실행했다.

 

build/libs/ 에 .jar 파일이 생기긴했지만, plain.jar 형태였다.

 

그냥 그 jar 파일을 커맨드에서 java -jar *.jar 로 실행했더니 아래와 같은 오류가 떴다.

 

No main manifest attribute, in *.jar

 


해결

plain.jar에는 Main 클래스에 대한 정보가 담겨있지 않아서 이러한 오류가 난다고 한다. 따라서 우리는 ~plain.jar 파일이 아닌 ~.jar 파일을 생성해야한다.

 

방법은 간단하다, gradle에서 bootJar를 실행시켜주면 된다.

인텔리제이 기준 오른쪽에 Gradle이 있다.

이 Gradle을 클릭하자.

 

이렇게 여러가지 실행들이 나올텐데, 우리는 jar가 아닌 bootJar를 실행하면 된다.

 

그러면 plain.jar가 아닌 .jar가 생성되고 프로젝트가 jar로도 실행되게 된다.