Tout d'abord, supposons que la classe «Child» suivante existe.
Child.java
public class Child extends Parent {
public static void main(String[] args) {
System.out.println("This class is `Child`");
}
}
Le résultat de son stockage dans child.jar
et de son exécution dans Java 8 est le suivant.
C:\>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
C:\>java -cp child.jar Child
Erreur:La classe principale Child est introuvable ou n'a pas pu être chargée
L'exécution de Java a échoué avec l'erreur «Classe principale Enfant introuvable ou impossible de charger» même si la classe «Enfant» existe.
__ La vraie raison est que la classe parent «Parent» de «Child» ne peut pas être lue. __ En fait, Parent
est stocké dans parent.jar
, qui est différent de child.jar
. Cependant, parent.jar
ne peut pas être lu par la méthode d'exécution de commande java
ci-dessus.
J'ai donc ajouté parent.jar
au chemin de classe et exécuté java
, et cela a fonctionné comme prévu.
C:\>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
C:\>java -cp child.jar;parent.jar Child
This class is `Child`
En regardant uniquement la partie "Enfant non trouvé", il semble que "Enfant" n'a pas été stocké correctement dans "child.jar", et en fait j'ai perdu beaucoup de temps à cause de cette croyance. ……. C'est dommage que le message d'erreur soit difficile à comprendre (girafe inversée)
Recommended Posts