Java에서 클래스가 존재할 때 ClassNotFoundException이 발생하는 이유는 무엇입니까?
클래스를 로드하려고 할 때마다 클래스 로더가 지정된 경로에서 클래스를 찾을 수 없으면 ClassNotFoundException이 생성됩니다.
이런 상황은 Class라는 클래스의 forName() 메서드나 ClassLoader 클래스의 loadClass() 메서드를 사용하여 명시적으로 클래스를 로드하는 Java 프로그램을 실행할 때 발생할 수 있습니다. 이 두 클래스는 클래스 이름을 나타내는 문자열 값을 받아들이고 지정된 클래스를 로드합니다.
이 메소드에 클래스 이름을 전달할 때 다음 사항을 확인해야 합니다.
지정된 클래스(패키지 포함)는 현재 디렉터리에 있거나 해당 경로가 환경 변수 classpath에 나열되어야 합니다.
이 메소드에 전달된 클래스 이름은 정확해야 합니다.
Example
D:// 디렉토리에 Sample 이라는 파일을 생성하고 다음과 같이 컴파일한다고 가정합니다. -
package myPackage.example; public class Sample { static { System.out.println("The class named Sample loaded successfully........."); } }
compile
D:\>javac -d . Sample.java
이것은 현재 디렉토리에 있을 것입니다. myPackage.example에 패키지를 만들고 그 안에 Sample 클래스의 .class 파일을 생성합니다. 따라서 이 클래스를 로드할 때 동일한 디렉토리에 넣고 절대 클래스 이름을 Class.forName() 또는 loadClass() p>
Example
Live Demo
public class ClassNotFoundExample { public static void main(String args[]) { try { Class.forName("myPackage.exampl.Sample"); }catch (ClassNotFoundException ex) { ex.printStackTrace(); } } }
Exception
에 전달해야 합니다.위 프로그램에서는 패키지 이름의 철자가 틀려서 다음과 같은 예외가 발생합니다.
D:\>java ClassNotFoundExample java.lang.ClassNotFoundException: myPackage.exampl.Sample at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Unknown Source) at ClassNotFoundExample.main(ClassNotFoundExample.java:4)
다른 디렉터리에서 특정 클래스에 액세스하려는 경우 클래스 경로를 설정해야 합니다. -
-
다음 .class 파일이 포함된 폴더(가장 바깥쪽 패키지).
또는
클래스가 포함된 jar 파일입니다.
철자 문제를 수정하고 E:// 디렉터리의 Java 파일에서 클래스를 로드하려고 한다고 가정합니다.
Example
Live Demonstration
public class ClassNotFoundExample { public static void main(String args[]) { try { Class.forName("myPackage.example.Sample"); }catch (ClassNotFoundException ex) { ex.printStackTrace(); } } }
Exception
은 여전히 동일한 예외가 발생합니다. 지정된 클래스의 .class 파일에 대한 패키지(또는 이를 포함하는 jar 파일)가 현재 디렉토리에도 없고 환경 변수 classpath의 경로 목록에도 없습니다.
E:\>java ClassNotFoundExample java.lang.ClassNotFoundException: myPackage.example.Sample at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Unknown Source) at ClassNotFoundExample.main(ClassNotFoundExample.java:4)
현재 시나리오에서는 클래스 경로를 필수 클래스 패키지가 포함된 디렉터리(예: "D://")로 설정하고 위의 Java 프로그램을 실행하여 작동하게 합니다.
rreee위 내용은 Java에서 클래스가 존재할 때 ClassNotFoundException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

다양한 운영 체제에서 Java의 성능에 미묘한 차이가 있습니다. 1) JVM 구현은 핫스팟 및 OpenJDK와 같은 성능 및 쓰레기 수집에 영향을 미칩니다. 2) 파일 시스템 구조 및 경로 분리기는 다르므로 Java 표준 라이브러리를 사용하여 처리해야합니다. 3) 네트워크 프로토콜의 차별적 구현은 네트워크 성능에 영향을 미칩니다. 4) GUI 구성 요소의 외관과 동작은 시스템마다 다릅니다. 표준 라이브러리 및 가상 기계 테스트를 사용하면 이러한 차이의 영향을 줄이고 Java 프로그램을 통해 원활하게 실행할 수 있습니다.

javaoffersrobustobject-eientedprogramming (OOP) 및 top-notchsecurityfeatures.1) oopinjavaincludesclasses, 객체, 상속, 다형성, 및 캡슐화, 2) inablingflexibleantaintainableystems.2) secere-featecludejavirtmachine (jVM)

javaScriptandjavahavedistInctStrengths : javaScriptexcelsindynamictypingandasynchronousprogramming, whilejavaisrobustwithstrongoopandtyping.1) javaScript'sdynamicnatureallowsforrapiddevelopmentand prothotyping, withasync/withasynon-blockingi/o.2)

javaachievesplatforminccendenceThermeThoughthejavavirtualMachine (JVM) 및 BYTECODE.1) thejvmGretsByTecode, thesAmeCodetorUnonOnonAnyPlatFormwithajvm.2) bytecodeiscomeDeDfromjavasourcodeanDisplatform-howhowhowhownectection, howludection, howludectionnectection

java'splatforminccendenceMeansapplicationsCannonanyplatformwithajvm, "WriteOnce, Runanywhere"를 활성화하지만, 도전적인 jvminconsistencies, libraryportability 및 andperformancevariations.toaddressthese : 1) Usecross-platformtestingtools, 2).

JVM 'sperformanceIscompetitive, ontotherRuntimes, 안전 및 생산성을 제공합니다

javaachievesplatformincendenceThermeThoughthejavavirtualMachine (JVM), codeiscompiledintobytecode, notmachine-specificcode.2) bytecodeistredbythejvm, anblingcross- shoughtshoughts

thejvmisanabstractcomputingmachinecrucialforrunningjavaprogramsduetoitsplatform-independentarchitection.itincludes : 1) classloaderforloadingclasses, 2) runtimeDataAreaFordatorage, 3) executionEnginewithgringreter, jitcompiler 및 ggarocubucbugecutec


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.