JAR파일 내부의 패키지를 클래스패스로 지정할 수 있나요?

조회수 2169회

ExampleJob이라는 클래스를 포함하는 어플리케이션을 JAR파일로 빌드한 다음, 이 JAR 파일을 클래스패스로 잡고 ExampleJob 클래스를 실행하는것까지는 가능한데요. 아래처럼요:

#!/bin/bash
JAVA_HOME=/usr/local/jdk1.8.0_121
CLASSPATH=test.jar

$JAVA_HOME/bin/java -cp $CLASSPATH com.test.job.ExampleJob

# 실제 파일의 경로 
# test.jar
#   ㄴ com
#       ㄴ test
#           ㄴ job
#               ㄴ ExampleJob.class

여기서 저는 ExampleJob의 패키지를 명시하지 않고 아래처럼 생략하고 싶은데 해당 패키지를 클래스패스로 지정하는 방법이 있나요?

$JAVA_HOME/bin/java -cp $CLASSPATH ExampleJob 
# 오류: 기본 클래스 ExampleJob을(를) 찾거나 로드할 수 없습니다.

위 질문을 스택오버플로우에 올렸더니,

The Manifest.mf file would have the main-class information - e.g. MyJar.jar\META-INF\MANIFEST.MF

Manifest-Version: 1.0
Main-Class: com.mycomp.myproj.dir1.MainClass1
Class-Path: MyJar.jar
MyJar.jar\META-INF\MANIFEST.MF

Then just run it with java -jar MyJar.jar

Similarly for your project you can have your main class configured in the Manifest.mf

이런 답변을 받았는데, 이렇게 메인클래스를 지정하는 방법 말고는 없을까요?

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)