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
이런 답변을 받았는데, 이렇게 메인클래스를 지정하는 방법 말고는 없을까요?
댓글 입력