code

클래스 경로에서 와일드 카드를 사용하여 여러 jar를 추가하는 방법은 무엇입니까?

codestyles 2020. 8. 27. 07:48
반응형

클래스 경로에서 와일드 카드를 사용하여 여러 jar를 추가하는 방법은 무엇입니까? [복제]


이 질문에 이미 답변이 있습니다.

나는 내가 사용하는 모든 단일 jar 파일에 대한 경로를 포함해야하기 때문에 내 CLASSPATH가 완전히 엉망이 될 정도로 많은 타사 라이브러리 (jar 파일)를 사용하고 있습니다.

와일드 카드 (*) 연산자 (예 : * .jar)를 사용하여 폴더에 모든 jar 파일을 포함하는 방법이 있는지 궁금합니다. 그러나 작동하지 않는 것 같습니다. 내 PC에서 현재 에세이처럼 보이는 CLASSPATH를 줄일 수있는 다른 방법이 있습니까?).


출처 : http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html

클래스 경로 항목은 기본 이름 와일드 카드 문자를 포함 할 수 있으며 *, 이는 확장자가 .jar 또는 .JAR 인 디렉토리의 모든 파일 목록을 지정하는 것과 동일한 것으로 간주됩니다. 예를 들어, 클래스 경로 항목 foo/*은 foo라는 디렉토리에있는 모든 JAR 파일을 지정합니다. 단순히로 구성된 클래스 경로 항목 *은 현재 디렉토리의 모든 jar 파일 목록 으로 확장됩니다.

이것은 Java6에서 작동하지만 Java5에 대해서는 확실하지 않습니다.

(가 보인다면 그것은 따옴표를 넣어 시도, 예상대로 작동하지 않습니다 예 :. "foo/*")


이것은 Windows에서 작동합니다.

java -cp "lib/*" %MAINCLASS%

여기서 %MAINCLASS%물론 메인 메소드를 포함하는 클래스입니다.

또는 :

java -cp "lib/*" -jar %MAINJAR%

%MAINJAR%내부 매니페스트를 통해 시작할 jar 파일은 어디에 있습니까 ?


기본 이름 와일드 카드는 Java 6에서 도입되었습니다. 즉, "foo / *"는 "foo"디렉토리에있는 모든 ".jar"파일을 의미합니다.

와일드 카드 클래스 경로를 지원하지 않는 이전 버전의 Java에서는 쉘 래퍼 스크립트를 사용하여 패턴을 '글 로빙'하고 결과를 수정하여 적절한 지점에 ':'문자를 삽입하여 클래스 경로를 어셈블했습니다. 이것은 BAT 파일에서 수행하기 어려울 것입니다 ...


CLASSPATH라는 환경 변수가 있다는 것을 의미한다면 그것은 실수라고 말하고 싶습니다. 나는 자바를 개발하는 어떤 기계에도 그런 것이 없다. CLASSPATH는 특정 프로젝트에 너무 연결되어있어 모두에게 적합한 단일의 올바른 CLASSPATH를 가질 수 없습니다.

IDE 또는 Ant를 사용하여 각 프로젝트에 대해 CLASSPATH를 설정했습니다. 저는 웹 개발을 많이하므로 각 WAR과 EAR는 자체 CLASSPATH를 사용합니다.

IDE 및 앱 서버에서는 무시됩니다. 왜 가지고 있습니까? 삭제하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/1237093/how-to-use-a-wildcard-in-the-classpath-to-add-multiple-jars

반응형