program tip

자바 : 명령 줄에서 jar 파일을 가져 오는 방법

radiobox 2020. 10. 23. 07:45
반응형

자바 : 명령 줄에서 jar 파일을 가져 오는 방법


Java를 사용하여 명령 줄 (Windows)에서 클래스 (주 메서드)를 호출하려고합니다.
이 클래스는 다른 클래스 (다른 jar)를 가져옵니다.

주 프로그램이 가져 오는 클래스에서 항상 "클래스를 찾을 수 없음 예외"가 발생합니다.

내가 시도한 것은 다음과 같습니다.

  • CLASSPATH 환경을 추가하십시오. 참조 된 lib가있는 경로가있는 var (작동하지 않음)

  • java -jar myjar.jar명령 줄에서 " "를 호출 할 때이 모든 다른 매개 변수로 시도했습니다 . " -classpath lib/", " -classpath ./lib/", " -classpath lib", " -cp lib/*", " -cp lib/\*", " -classpath lib/referenced-class.jar", " -classpath ./lib/referenced-class.jar"(lib는 참조 된 jar가있는 곳입니다)

  • 내 주 클래스가있는 항아리 안에 모든 참조 된 항아리를 패키징하려고했습니다.

  • 그리고이 모든 것과 함께 Manifest 파일 내부의 클래스를 다음 Class-path referenced-jar.jar같이 지정 하려고했습니다.Class-path lib/referenced-jar.jar


실행 -jar하려는 메인 클래스의 이름을 알고 있다면 명령 줄 인수 없이 실행할 수 있습니다.

java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass

리눅스를 사용하고 있다면 ";"대신 ":"을 사용해야합니다. 클래스 경로에서.


당신이 jar 파일을 실행하는 경우 java -jar-classpath인수는 무시됩니다 . 다음과 같이 jar의 매니페스트 파일에 클래스 경로를 설정해야합니다.

Class-Path: jar1-name jar2-name directory-name/jar3-name

Java 자습서 : JAR 파일의 클래스 경로에 클래스 추가를 참조하십시오 .

편집 : 이미 매니페스트에서 클래스 경로를 설정하려고 시도했지만 올바른 구문을 사용 했습니까? 보신 것처럼 :" Class-Path" 뒤에 ' ' 를 건너 뛰면 작동하지 않습니다.


시험

java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main

당신이 창문에 있다면, 당신은 ;대신에 사용해야 합니다:


Eclipse에서 "Runnable jar"로 내보내기를 시도 할 수 있습니다. "jar"로 내보낼 때도 문제가 있지만 "Runnable jar"로 내보낼 때는 문제가 없습니다.

참고 URL : https://stackoverflow.com/questions/945962/java-how-to-import-a-jar-file-from-command-line

반응형