java.lang.ClassNotFoundException
are using Class.forName
or ClassLoader.loadClass
to load a class by passing String name of a class and it’s not found on the classpath. java.lang.ClassNotFoundException
常見原因是使用Class.forName
或ClassLoader.loadClass
通過傳遞類的String名稱來加載類,而在類路徑上找不到它。 Class.forName
but forget to add it’s jar file in the classpath. ClassNotFoundException的最常見示例之一是,當我們嘗試使用Class.forName
加載JDBC驅動程序但忘記將其jar文件添加到類路徑中時。 Let’s look at a simple example where we will get ClassNotFoundException
.
讓我們看一個簡單的示例,在該示例中將獲得ClassNotFoundException
。
package com.journaldev.exceptions;public class DataTest {public static void main(String[] args) {try {Class.forName("com.journaldev.MyInvisibleClass");ClassLoader.getSystemClassLoader().loadClass("com.journaldev.MyInvisibleClass");ClassLoader.getPlatformClassLoader().loadClass("com.journaldev.MyInvisibleClass");} catch (ClassNotFoundException e) {e.printStackTrace();}}}
Note that com.journaldev.MyInvisibleClass
doesn’t exist, so When we execute above program, we get following exception stack trace.
請注意, com.journaldev.MyInvisibleClass
不存在,因此當我們執行上述程序時,將獲得以下異常堆棧跟蹤。
java.lang.ClassNotFoundException: com.journaldev.MyInvisibleClassat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:292)at com.journaldev.exceptions.DataTest.main(DataTest.java:7)
Java char、In above example, all the three statements will throw java.lang.ClassNotFoundException
.
在上面的示例中,所有這三個語句將拋出java.lang.ClassNotFoundException
。
It’s very easy to fix ClassNotFoundException because the exception stack trace clearly specifies the class not found. Just check for classpath settings and make sure class it’s present at runtime.
修復ClassNotFoundException非常容易,因為異常堆棧跟蹤明確指定了未找到的類。 只需檢查類路徑設置,并確保其在運行時存在即可。
NoClassDefFoundError
is a runtime error thrown when a class is not found at runtime. It’s very similar to ClassNotFoundException
. Read more at Java NoClassDefFoundError.
java是什么? NoClassDefFoundError
是在運行時找不到類時引發的運行時錯誤。 它與ClassNotFoundException
非常相似。 在Java NoClassDefFoundError上內容。
Reference: API Doc
參考: API文檔
翻譯自: https://www.journaldev.com/20898/java-classnotfoundexception-java-lang-classnotfoundexception
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态