>

사용하는 모든 단일 jar 파일의 경로를 포함해야하기 때문에 너무 많은 타사 라이브러리 (jar 파일)를 사용하여 CLASSPATH가 완전히 엉망이되었습니다.

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


  • 답변 # 1

    보낸 사람 : http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html

    와이즈 비즈 와이즈 비즈 확장자가 .jar 또는 .JAR 인 디렉토리의 모든 파일 목록을 지정하는 것과 같습니다. 예를 들어, 클래스 경로 항목

    Class path entries can contain the basename wildcard character  foo라는 디렉토리에 모든 JAR 파일을 지정합니다. 단순히 * 로 구성된 클래스 경로 항목  현재 디렉토리의 모든 jar 파일 목록으로 확장합니다.

    이것은 Java5에 대해 잘 모르는 Java6에서 작동해야합니다

    (예상대로 작동하지 않으면 따옴표를 입력하십시오. 예 : foo/* )

  • 답변 # 2

    Windows에서 작동합니다 :

    *
    
    

    여기서 "foo/*"  물론 기본 메소드가 포함 된 클래스입니다.

    대체 :

    java -cp "lib/*" %MAINCLASS%
    
    

    여기서 %MAINCLASS%  내부 매니페스트를 통해 실행할 jar 파일입니다.

  • 답변 # 3

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

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

  • 답변 # 4

    CLASSPATH라는 환경 변수가 있음을 의미한다면 그것은 실수입니다. Java를 개발하는 모든 컴퓨터에는 그런 것이 없습니다. CLASSPATH는 특정 프로젝트와 연결되어있어 모두에게 적합한 단일 CLASSPATH를 가질 수 없습니다.

    IDE 또는 Ant를 사용하여 각 프로젝트에 대해 CLASSPATH를 설정했습니다. 많은 웹 개발을 수행하므로 각 WAR 및 EAR은 고유 한 CLASSPATH를 사용합니다.

    IDE와 앱 서버에서는 무시됩니다. 왜 가지고 있습니까? 나는 그것을 삭제 권하고 싶습니다.

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

  • 이전 c# - XML을 객체로 역 직렬화하는 방법
  • 다음 beautifulsoup - 파이썬 루프에서 href 링크 및 텍스트 가져 오기