Maison >Java >javaDidacticiel >JavaClassNotFoundException

JavaClassNotFoundException

WBOY
WBOYoriginal
2024-08-30 16:14:44871parcourir

Comme son nom l'indique, ClassNotFoundException se produit en Java lorsqu'une classe spécifique est tentée de se charger par une machine virtuelle Java (JVM). La classe demandée n'est pas trouvée dans le chemin de la classe spécifié par vous, ce qui signifie que le chemin de la classe spécifié par vous est cassé, ce qui est un problème très courant dans le monde Java. Par conséquent, ClassNotFoundException est également courante en Java. Ce problème est très déroutant pour ceux qui débutent en Java, et ClassNotFoundException doit être intercepté ou lancé à l'appelant. ClassNotFoundException est une exception vérifiée.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

La syntaxe de ClassNotFoundException en Java est la suivante : 

java.lang.ClassNotFoundException:Class_name at location

Fonctionnement de ClassNotFoundException en Java

  • Lorsqu'un chargeur de classe n'est pas en mesure de trouver la classe dans le chemin de la classe spécifiée pendant que l'application essaie de charger la classe, c'est à ce moment-là que l'exception ClassNotFoundException se produit en Java.
  • Utiliser Class.forName et ClassLoader.loadClass pour charger la classe tout en transmettant le nom de chaîne de la classe comme paramètre qui ne se trouve pas dans le chemin de la classe spécifiée est l'une des causes courantes de java.lang .ClassNotFoundException en Java.
  • ClassNotFoundException en Java doit être interceptée ou lancée à l'appelant car il s'agit d'une exception vérifiée.
  • La classe se charge indirectement à l'aide du Classloader. Par conséquent, ClassNotFoundException en Java se produit au moment de l’exécution. Il n'y a aucun moyen pour un compilateur Java de savoir si une classe est présente dans le chemin de la classe spécifiée ou non au moment de l'exécution.
  • Essayer de charger les pilotes JDBC à l'aide de Class.forName et ne pas ajouter le fichier jar dans le chemin de la classe est l'un des exemples courants d'exception ClassNotFoundException en Java.
  • Considérez le programme ci-dessous pour démontrer ClassNotFoundException en Java :
//a class called program is defined
public class Program
{
//main method is called
public static void main(String args[])
{
//class not found exception is defined using try and catch block
try
{
// the forname method in class class looks for the mentioned class
Class.forName("The Class do not Exist");
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}

Le résultat du programme ci-dessus est tel qu'indiqué dans l'instantané ci-dessous :

JavaClassNotFoundException

Dans le programme ci-dessus, une classe appelée Program est définie. Ensuite, la méthode principale est appelée. Ensuite, l’exception de classe introuvable est définie à l’aide du bloc try and catch. Il n'y a pas de classe Java que le chargeur de classe essaie de trouver et la méthode forname dans la classe recherche la classe mentionnée, qu'elle ne parvient pas à trouver ; par conséquent, l'exception ClassNotFoundException est levée. Le résultat du programme est tel qu'indiqué dans l'instantané ci-dessus.

Constructeurs

Il existe plusieurs constructeurs pour ClassNotFoundException en Java. Ce sont :

  • ClassNotFoundException() : Une nouvelle ClassNotFoundException est construite qui inclut la trace actuelle de la pile.
  • ClassNotFoundException(String) : Une nouvelle ClassNotFoundException est construite, qui inclut la trace actuelle de la pile et le message en détail, spécifié.
  • ClassNotFoundException(IntPtr, JniHandleOwnership) : Lors de la création des objets JNI, lors de la gestion de leurs représentations, ce constructeur est utilisé, et le runtime l'appelle.
  • ClassNotFoundException(String, Throwable) : Une nouvelle ClassNotFoundException est construite, qui inclut la trace actuelle de la pile ainsi que le message en détail spécifié et l'exception qui se produit lors de la tentative de chargement de la classe .

Exemples d'exception Java ClassNotFoundException

Voici les exemples suivants mentionnés ci-dessous :

Exemple n°1

Programme Java pour démontrer ClassNotFoundException :

 Code :

//a class called exceptiondemo is defined
public class Exceptiondemo
{
//a string variable is defined
private static final String DRIVE_CLASS = "com.mysql.jdbc.Driver";
//main method is called including the exception
public static void main(String[]  args) throws Exception
{
System.out.println("MySQL JDBC driver loading attempt");
//the forname method in class class looks for the mentioned class
Class.forName(DRIVE_CLASS);
}
}

Le résultat du programme ci-dessus est tel qu'indiqué dans l'instantané ci-dessous :

JavaClassNotFoundException

Dans le programme ci-dessus, une classe appelée Exception demo est définie. Ensuite, la méthode principale est appelée. Ensuite, une variable chaîne est définie à laquelle le chemin du pilote JDBC est attribué. Ensuite, la méthode main est appelée, ce qui lève l'exception. Le chargeur de classe essaie de trouver le chemin du pilote JDBC de la classe spécifiée et la méthode forname dans la classe recherche la classe mentionnée, qu'elle ne parvient pas à trouver ; par conséquent, l'exception ClassNotFoundException est levée. Le résultat du programme est tel qu'indiqué dans l'instantané ci-dessus.

Exemple n°2

Programme Java pour démontrer ClassNotFoundException(String)

Code :

//a class called check is defined
public class Check
{
//main method is called
public static void main(String args[])
{
//class not found exception is defined using try catch block
try
{
//the forname method in class class looks for the mentioned class
Class.forName("Demonstrating class not found exception");
}
catch(ClassNotFoundException e)
{
//the string specified along with the class not found exception is displayed.
System.out.println("There is no class as specified in the path " + e);
}
}
}

Le résultat du programme ci-dessus est tel qu'indiqué dans l'instantané ci-dessous :

JavaClassNotFoundException

Dans le programme ci-dessus, une classe appelée check est définie. Ensuite, la méthode principale est appelée. Ensuite, la méthode principale est appelée. Ensuite, l’exception de classe introuvable est définie à l’aide du bloc try and catch.  Ensuite, la méthode forename dans class recherche la classe mentionnée, qu'elle ne parvient pas à trouver ; par conséquent, l'exception ClassNotFoundException est levée et la chaîne spécifiée sous forme de message détaillé ainsi que l'exception de classe introuvable est affichée. Le résultat du programme est tel qu'indiqué dans l'instantané ci-dessus.

Comment éviter ClassNotFoundException ?

Étapes pour éviter ClassNotFoundException :

  • Il faut trouver le fichier de la classe à l'origine du problème sur laquelle le fichier jar est présent.
  • Nous devrions vérifier si le chemin de la classe ou le chemin de classe se compose de ce fichier jar. Si le fichier jar n'est pas présent dans le chemin de classe ou le chemin de la classe, la classe doit être ajoutée dans le chemin de la classe ou du chemin de classe.
  • Si la classe est présente dans le chemin de classe ou le chemin de classe, il y a de fortes chances qu'il y ait un remplacement du chemin de classe ou du chemin de la classe ou que le chemin spécifié dans le fichier jar ou que le script utilisé pour le démarrage soit utilisé par la demande. Pour résoudre ce problème, nous devons trouver le chemin exact de la classe utilisée par l'application.

Conclusion

Dans ce didacticiel, nous comprenons le concept de Class Not Found Exception en Java à travers la définition, la syntaxe de Class Not Found Exception en Java, le fonctionnement de Class Not Found Exception en Java et leurs constructeurs à travers des exemples et leurs sorties.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn