Mac Terminal: impossible de trouver ou charger la classe principale de CLASSNAME
Je suis en train d'exécuter un programme java via le Terminal sur Mac, encore arriver:
Error: Could not find or load main class (MY CLASSNAME)
J'ai compilé cette application avec Eclipse, et lorsque je l'exécute avec Eclipse, il fonctionne très bien.
En outre, je suis dans le bon répertoire, comme lorsque je tape "ls" dans le Terminal, il répertorie tous les fichiers, comprend le fichier de classe je suis en train de lancer.
C'est ce que j'type:
java mainClass
Je serais très heureux de les aider à résoudre ce!
Merci,
Doyen
EDIT: Solution - au lieu de java mainClass, il doit avoir paquet: java startPackage.mainClass
- Ne
mainClass
vivre dans unpackage
? - Oui, son startPackage
- Merci! C'était le problème!
- ma classe principale qui est à césar, java com.de l'entreprise.césar ne fonctionne pas. Je ne peux pas comprendre ce qui se passe.......
Vous devez vous connecter pour publier un commentaire.
Commencer par s'assurer que vous êtes dans le répertoire au-dessus du haut niveau
package
Si la classe appartient à la
package
com.foo.bar
, vous voulez être dans le répertoire ci-dessuscom
.Dans votre cas, vous voulez être dans le répertoire ci-dessus
startPack
.Alors vous devez utiliser le nom pleinement qualifié pour exécuter la classe...
Par exemple...
-cp
paramètre de dire à Java où il convient de rechercher des ressources supplémentaires, par exemplejava -cp /path/to/Library.jar:/path/to/directory/full/of/classes stackPack.mainClass
Vous pouvez avoir besoin de devis ou de s'échapper de n'importe quel chemin d'éléments avec des espaces 😉;
sur windowsAssurez-vous d'avoir le répertoire courant à l'intérieur de votre CLASSPATH.
Pour régler cela à l'échelle mondiale, vous pouvez utiliser
export CLASSPATH=$CLASSPATH:.
à l'intérieur de.bash_profile
.Séparément, si votre classe vit à l'intérieur d'un package comme
com.foo.bar
, alors vous aurez besoin d'aller vers le répertoire parent ducom
et exécuter votre application avec le chemin complet.;
sur Windows, raconte l'OS comment de "diviser" le chemin éléments, de sorte que vous pouvez spécifier plusieurs chemins différents dans une seule chaînejava -cp .:PathToLib1.jar:PathToLib2.jar com.foo.bar.mainClass
.J'ai moi aussi été confronté à ce sur la machine Mac et puis ce que j'avais à faire pour que cela fonctionne est:
Énoncé Du Problème:
J'en ai eu un paquet xyz sous la racine du projet que j'ai.e src/main/java et puis à l'intérieur de xyz paquet j'ai eu un cours Student.java
mon répertoire courant est /Utilisateurs/nom d'utilisateur/nom_projet/src/main/java/xyz:
Je peux voir Student.java il existe ici
et j'ai compilé à l'aide de javac Student.java
Maintenant je vois les fichier de classe a été créée à cet emplacement. Mais lorsque j'essaie d'exécuter le fichier de classe à l'aide de java Étudiant
J'obtiens l'erreur: Erreur: impossible de trouver ou charger la classe principale de l'Étudiant
Solution:
Maintenant la solution est d'aller un pas en arrière dans le répertoire et aller à la racine du chemin d'accès:/Utilisateurs/nom d'utilisateur/nom_projet/src/main/java et exécutez la commande
java xyz.Étudiant
et il va fonctionner.
Lien à suivre: https://javarevisited.blogspot.com/2015/04/error-could-not-find-or-load-main-class-helloworld-java.html