>  기사  >  Java  >  명령줄에서 실행할 때 Maven의 \"NoClassDefFoundError\"를 어떻게 해결할 수 있나요?

명령줄에서 실행할 때 Maven의 \"NoClassDefFoundError\"를 어떻게 해결할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 04:01:02820검색

How can I resolve the

NoClassDefFoundError에 대한 Shade 플러그인을 통한 종속성 해결

Maven을 처음 사용하는 경우 다음으로 인해 Eclipse와 명령줄 사용 간에 불일치가 발생할 수 있습니다. 의존성 관리. Eclipse 내에서 성공적인 Maven 프로젝트 생성 및 종속성 추가에도 불구하고 명령줄을 통해 프로젝트를 실행하면 NoClassDefFoundError가 발생할 수 있습니다.

기본적으로 Maven은 종속성을 별도로 패키지하고 컴파일된 JAR 파일에 포함하지 않습니다. 이 생략으로 인해 실행 중에 라이브러리 클래스를 찾으려고 시도할 때 Java VM이 실패하게 됩니다.

클래스 경로에 라이브러리를 수동으로 추가하는 대신 maven-shade-plugin이 더 효율적인 솔루션을 제공합니다. 애플리케이션 클래스와 필수 라이브러리 코드를 결합하는 "uber-JAR"을 생성합니다.

이를 구현하려면 POM에 다음 플러그인 구성을 추가하세요.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.5.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

이 구성을 추가한 후, 다음 명령을 다시 실행하세요.

$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App

포함된 JAR 또는 실행 가능한 JAR 파일 지정과 같은 고급 구성 옵션에 대해서는 maven-shade-plugin 웹사이트의 "예제" 섹션을 참조하세요.

위 내용은 명령줄에서 실행할 때 Maven의 \"NoClassDefFoundError\"를 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.