자바 : 명령 줄에서 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
'program tip' 카테고리의 다른 글
subprocess.communicate ()에서 스트리밍 입력 읽기 (0) | 2020.10.23 |
---|---|
건초 더미에서 바늘을 어떻게 찾습니까? (0) | 2020.10.23 |
프로덕션 JavaScript 코드에 "console.log ()"호출을 남겨 두는 것이 좋지 않습니까? (0) | 2020.10.23 |
MS Ajax에서 사용하기 위해 .NET 문자열을 JavaScript 문자열로 인코딩하는 표준 방법이 있습니까? (0) | 2020.10.23 |
배열에 객체가 포함되어 있는지 확인하려면 어떻게합니까? (0) | 2020.10.23 |