스레드 기본 Java.Lang.NoClassDefFoundError의 예외
-
Java에서
스레드 "main" java.lang.NoClassDefFoundError
의 예외 -
Java에서
스레드 "main" java.lang.NoClassDefFoundError의 예외
의 원인 -
Java에서
스레드 "main" java.lang.NoClassDefFoundError의 예외
에 대한 솔루션
오늘 포스팅에서는 Java의 main
쓰레드에서 발생한 java.lang.NoClassDefFoundError
에 대해 알아보겠습니다. 그러나 시작하기 전에 java.lang.NoClassDefFoundError
가 의미하는 바를 이해해야 합니다.
Java에서 스레드 "main" java.lang.NoClassDefFoundError
의 예외
java.lang.NoClassDefFoundError
는 애플리케이션의 코드 또는 사용 중인 외부 라이브러리가 오픈 소스 로깅 라이브러리인 SLF4J
라이브러리를 사용하려고 시도하고 있음을 나타냅니다.
그래도 필요한 라이브러리를 찾을 수 없기 때문에 그렇게 할 수 없습니다. 이로 인해 main
스레드에서 java.lang.NoClassDefFoundError
라는 예외가 발생합니다.
Java 프로그램은 현재 있는 디렉토리에서만 클래스 파일을 찾기 때문에 클래스 파일이 현재 있는 디렉토리에 없으면 classpath
에 추가해야 합니다.
이 문제에 대한 해결책은 이것을 넣는 것입니다. 클래스 파일은 이제 classpath
에서 찾을 수 있습니다.
클래스 파일이 jar
파일에 포함된 경우 jar
파일이 classpath
에 포함되어야 합니다. Classpath
는 절대적이고 완전한 경로이거나 디렉토리와 관련된 상대 경로일 수 있습니다.
‘Classpath’는 설정 시 특정 폴더에 있는 클래스 파일로 시스템을 안내하는 시스템 전체 환경 변수입니다.
Java에서 스레드 "main" java.lang.NoClassDefFoundError의 예외
의 원인
다음은 다양한 Java 프로그램의 main
스레드 java.lang.NoClassDefFoundError
에서 예외를 트리거한 일반적인 원인입니다. 현재 겪고 있는 문제는 이러한 이유 중 하나일 수 있습니다.
-
classpath
의 잘못된 항목 -java-jar
명령을 사용하여 Java 프로그램을 실행할 때manifest
파일의ClassPath
속성에 해당 클래스의 정의가 포함되지 않습니다. 이것은 예외의 가능한 결과 중 하나입니다. -
환경 관련 문제 -
java.lang.NoClassDefFoundError
의 비정상적인 원인이 발생했습니다. Java로 작업할 때 이 예외가 계속 발생합니다.특정 인스턴스에서 Java 프로그램을 시작하는 셸 스크립트 중 하나가
CLASSPATH
환경 변수의 값을 변경했습니다.이로 인해 Java 응용 프로그램이 제대로 시작되지 않았습니다. 따라서
java-classpath
명령을 사용하여 Java 애플리케이션을 시작하고classpath
에 포함할JAR
파일 목록을 제공하여 시작 스크립트에서classpath
를 지정해야 합니다. -
classpath
에JAR
파일이 없음 - 이 문제에 대한 가장 간결한 설명은.jar
파일이classpath
에 포함되지 않았다는 것입니다.classpath
에JAR
을 포함하는 즉시 문제가 더 이상 나타나지 않습니다.검색 리소스 Ctrl+R와 같은 키보드 단축키를 사용하여 Eclipse에서 특정 클래스가 속한
JAR
파일을 식별할 수 있습니다.클래스가 속한
JAR
파일을 확인한 후 해당JAR
이classpath
에 있는지 여부를 검사할 수 있습니다. -
클래스 로더의 오버라이딩 - 부모 클래스 로더로부터 클래스 로딩 요청이 있고, 그 후 자식 클래스 로더가 요청된 클래스의 로딩을 시도한다.
상위 클래스 로더가 클래스를 로드하면 하위 클래스 로더는 이를 볼 수 있지만 반대로 상위 클래스 로더는 하위 클래스 로더가 무엇을 로드했는지 알 수 없습니다.
Java에서 스레드 "main" java.lang.NoClassDefFoundError의 예외
에 대한 솔루션
-
Windows에서 발생하는 예외를 수정할 수 있도록
CLASSPATH
환경 변수를 구성해야 합니다.classpath
를 설정하려면 다음 설정을 구성해야 합니다.set CLASSPATH = % CLASSPATH % ; .;
%CLASSPATH%
는 추가할 기존classpath
를 의미하며 현재 프로그램이 실행되고 있는 디렉토리를 의미합니다. -
프로젝트의 빌드 경로를 설정해야 합니다.
Project
탭을 마우스 오른쪽 버튼으로 클릭하고Properties
를 선택한 다음Java Build Path
를 선택한 다음 폴더 세트 소스에서jars
또는 클래스에 대한 라이브러리 선택을 선택하여 사용자 정의할 수 있습니다. -
classpath
에서jar
파일이 누락된 경우 서버에서 예외가 나타납니다. 이 문제를 해결하려면 전체 스택 추적을 확인하고 누락된jar
파일의 이름을 확인하고 이를 서버classpath
또는 애플리케이션classpath
에 추가하도록 노력하십시오. -
이 클래스를 사용하려면 클래스 자체 또는 이를 제공하는
.jar
파일을java
classpath
에 포함해야 합니다..
을 입력해야 합니다. 명령줄에서 실행할 때마다 Java 클래스 이름의 시작 부분에.
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn