Erreur Maven: impossible de trouver ou de charger la classe principale org.codehaus.plexus.classworlds.launcher.Launcher


136

J'ai installé une dernière version maven-3.0.4sur Windows 7 :
les détails d'installation sont les suivants:
Chemin d'installation:

C:\apache-maven-3.0.4  

Les variables d'environnement sont:

M2_HOME C:\apache-maven-3.0.4\apache-maven\src  
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04  

Les variables de chemin ajoutées sont:

%M2_HOME%\bin;%JAVA_HOME%\bin;

Dans la fenêtre de commande, il le montre comme ceci:

C:\>java -version  
java version "1.7.0_04"  
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)  
Java HotSpot(TM) Client VM (build 23.0-b21, mixed mode, sharing)  
C:\>mvn -version  
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher  

C'est la seule version sur maven installée sur mon PC et la solution donnée sur de nombreux blogs faisant référence à la suppression de la M2_HOMEvariable d'environnement précédente n'est pas valide.

J'ai lu et essayé toutes les solutions proposées sur les blogs tels que:

mais toujours pas en mesure d'y accéder. Qu'est-ce que je pourrais manquer dans tout ça? Merci d'avance.


4
Je viens de télécharger le binaire zip et il était cassé. Remplacé par .tar.gzet ça marche. Alors, quand M2_HOMEest réglé correctement, essayez vraiment de vérifier que ce que vous avez téléchargé est correct.
Pavel Horal

@PavelHoral La même chose m'est arrivée
hoaphumanoid

J'obtiens cette erreur sur ce jenkins uniquement, via une commande comme mvn compile fonctionne bien!
Nullpointer

Réponses:


141

J'ai aussi rencontré ce problème et j'ai trouvé ceci article. Pour Maven3, changer le nom de ma variable d'environnement de M2_HOME à M3_HOME a fait l'affaire. Je suis sur un Mac exécutant OSX 10.9 avec JDK 1.7. J'espère que cela t'aides.

Remarque: veuillez supprimer M2_HOME, s'il est déjà défini. Par exemple:unset M2_HOME


26
Pareil pour moi sur un mac. Assurez-vous de supprimer M2_HOME
Luke

Travaillé avec le binaire Maven 3.3.3, sur Ubuntu. JAVA_HOME n'est pas défini.
TFuto

2
Cela fonctionne à partir de Mac OS 10.10.5 avec brew installé maven (3.3.3).
Jérémie

@Luke Merci! unset M2_HOME.
Jared Burrows

5
Cette solution fonctionne, mais pas pour les raisons que vous pourriez penser. Le problème, comme indiqué dans certains des commentaires de l'article référencé, n'est pas que M3_HOME est nécessaire à la place, mais plutôt que M2_HOME est mal défini. Il semble que M3_HOME ne soit pas du tout utilisé, donc ce qui se passe, c'est que la valeur par défaut est utilisée lorsque vous supprimez M2_HOME.
Matt

64

Même si la question est répondue, je voudrais ajouter que, si vous obtenez l'erreur mentionnée ci-dessus, assurez-vous que vous avez téléchargé le fichier binaire .

Le fichier source ne doit être téléchargé que si vous êtes un utilisateur avancé et que vous savez comment le gérer.

J'ai eu pas mal de personnes téléchargeant le mauvais fichier, des seniors et des juniors


1
J'ai en fait téléchargé la source exprès , car c'est la façon traditionnelle de faire les choses, mais j'ai accidentellement suivi les instructions pour l'installation binaire. Copier simplement le tar binaire était en fait plus facile à long terme.
MDMoore313 du

+1: La même chose s'est produite ici - cliqué accidentellement sur le mauvais lien de téléchargement. Fonctionne pas que j'ai le bon fichier zip!
Laura Ritchey

Cela a résolu à lui seul le problème pour moi - merci!
Liran H

Vrai. Téléchargement des fichiers sources et tentative de mise à jour de M3_HOME, mais cela n'a pas fonctionné. Les binaires fonctionnent bien.
Rohit

Cela m'arrivait juste. Le site Web n'est pas clair sur lequel utiliser.
frodo2975

60

J'avais ce même problème et j'ai pu le résoudre en refaisant soigneusement les variables d'environnement:

  • M2_HOME
  • M2
  • JAVA_HOME

En outre, je leur ai fait toutes des variables système , pas des variables utilisateur comme le disent les instructions Maven. Lorsque vous

echo %Path%

Assurez-vous que vous pouvez voir les variables% M2% et% JAVA_HOME% complètement développées, c'est-à-dire:

C:\Users\afairchild>echo %Path%
C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0_09\bin; [etc]

M2_HOME est la première chose à vérifier si vous effectuez une mise à niveau. JAVA_HOME doit rester inchangé.
Joe Leo

3
Comment la M2variable d'environnement est-elle utilisée? Je n'ai que JAVA_HOMEet M2_HOME.
Kevin Meredith

1
@KevinMeredith: La M2variable d'environnement est parfois utilisée pour indiquer le %M2_HOME\bin%chemin, qui à son tour est ensuite ajouté à la %Path%variable d'environnement. Ceci est nécessaire lorsque le fichier batch Maven mvn.batne peut pas être trouvé dans les %Path%entrées standard définies. Un cas d'utilisation typique serait un répertoire d'installation non standard pour Maven.
Moreaki

@Alex J'obtiens cette erreur sur ce jenkins uniquement, via une commande comme mvn compile fonctionne bien!
Nullpointer

49

Eu ce problème sur deux installations différentes d'Ubuntu 12.04, malgré les installations effectuées par apt-get. Le problème était M2_HOME.

Fixé avec:

export M2_HOME=/usr/share/maven

2
Cela a fonctionné pour moi mais avec M2_HOME = / usr / share / maven2 (au cas où quelqu'un d'autre l'essayerait). Merci!
jimkont

1
Sur Ubuntu, mieux créer /etc/profile.d/maven.sh avec la commande vous l' avez dit: export M2_HOME=/usr/share/maven. Comme @jimkont l'a souligné, parfois maven2 ou maven3 (si vous avez installé maven3, bien sûr).
Rael Gugelmin Cunha

Ça marche. Merci. Mais pouvons-nous simplement l'ajouter au fichier / etc / environtment?
karthik le

35

Je crois que cette erreur est due au téléchargement de SRC au lieu de BINARY à partir du site Maven. Veuillez vous assurer de télécharger le zip binaire.

Parce que le chemin ci-dessous, vous n'obtiendrez que lorsque vous téléchargez SRC:

M2_HOME C: \ apache-maven-3.0.4 \ apache-maven \ src

entrez la description de l'image ici


Cela a fonctionné pour moi. Suivez le guide ici: maven.apache.org/install.html et définissez votre variable système PATH avec C: \ apache-maven-3.6.3 \ bin
ChrisE

21

Il semble que vous ayez installé (extrait) les fichiers source au lieu des binaires en fonction de vos informations de chemin. Essayez plutôt d'installer les binaires et de suivre la réponse des autres affiches.


Merci aussi le mien fixe. Cependant, pourquoi ne pouvez-vous pas utiliser le téléchargement src aussi, tant qu'il contient l'exécutable correct dans le répertoire bin?
java123999

13

Eh bien, j'ai eu ce problème et après avoir vu ce post et en particulier la réponse khmarbaise, j'ai remarqué que M2_HOMEc'était

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0\bin

et puis je l'ai échangé avec

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0

Je voudrais mentionner que j'utilise Windows 7 (x64)


J'obtiens cette erreur sur ce jenkins uniquement, via une commande comme mvn compile fonctionne bien!
Nullpointer

6

La solution pour les versions ultérieures de Maven est simple. Je suis sur OS X ElCap, 10.11.6 et mis à niveau vers Maven 3.3.9. J'ai eu le même problème avec l'erreur " Could not find ...org.codehaus.plexus...". Le lien fourni ici proposait la solution dans un commentaire de McKamey - supprimez simplement M2_HOME (unset M2_HOME ). Une fois que j'ai essayé cela, tout a fonctionné comme prévu.

Cela peut être confirmé en visitant le Maven install page: "Ajouter le répertoire bin du répertoire créé apache-maven-3.3.9 à la variable d'environnement PATH" - aucune mention de M2_HOME ou M3_HOME du tout.


4

Vous devez changer l'emplacement du M2_HOME comme suit:

set M2_HOME=C:\apache-maven-3.0.4\apache-maven

De plus, l'installation du JDK ressemble plus à un JRE qu'à un JDK. Pour Maven, vous avez besoin de JDK et PAS de JRE.


Merci mais j'ai à la fois jdk et jre. Vous pouvez voir que j'ai donné le JAVA_HOME comme C: \ Program Files \ Java \ jdk1.7.0_04. Et si je donne le chemin pour M2_HOME que vous avez indiqué, le cmd ne reconnaîtra même pas la commande 'mvn'.
manofsins

Vous changez le M2_HOME comme je l'ai décrit, il ajoutera le% M2_HOME% \ bin à votre chemin, qui est nécessaire pour appeler la commande mvn.
khmarbaise

4

Je suis tombé sur un problème similaire sur mon mac OSX. Après une série d'essais et d'erreurs, je l'ai finalement résolu.

Mon ~/.bash_profileressemblait à ça

export M2_HOME=/Users/xyz/maven-3.x/bin
export PATH=$PATH:$M2_HOME

et quand j'ai essayé echo M2_HOMEdepuis le terminal, cela m'a montré le chemin correct, mais quand j'ai essayé de tirer une commande maven comme mvn cleanou mvn install, cela posait toujours le même problème

Impossible de trouver ou de charger la classe principale org.codehaus.plexus.classworlds.launcher.Launcher

J'ai résolu ce problème en remplaçant mon M2_HOMEpar ceci

export M2_HOME=/Users/xyz/maven-3.x
export PATH=$PATH:$M2_HOME/bin

Et voila! Ça a commencé à marcher! En déplaçant simplement la position de /binM2_HOME vers devant lePATH


3

Assurez-vous simplement d'avoir téléchargé l'archive zip binaire (apache-maven-3.5.0-bin.zip) au lieu de l'archive zip source. Ajoutez ensuite le répertoire bin du répertoire créé apache-maven-3.5.0 à la variable d'environnement PATH.


3

Pour la plupart des problèmes d'installation de Maven, quelque chose comme "Impossible de trouver ou de charger la classe principale ...", commencez par les étapes ci-dessous pour voir si cela corrige:

  • Assurez-vous d'avoir décompressé la bonne archive (archive BINAIRE et non archive SOURCE)
  • Supprimez toutes les variables utilisateur et système liées à Maven (ex. M2_HOME, M2_OPTS etc.)
  • Assurez-vous que la variable système JAVA_HOME est configurée (ex. "C: \ Program Files \ Java \ jdk1.8.0_172")
  • Assurez-vous que l'emplacement de la corbeille java est ajouté dans la variable système "path" (ex. "% JAVA_HOME% \ bin")
  • Assurez-vous que l'emplacement de la corbeille maven est ajouté dans la variable système "chemin" (ex. "C: \ MyInstalls \ apache-maven-3.5.4 \ bin")

puis...

  • Vérifiez que java est configuré (à l'invite de commande: java -version)
  • Vérifiez que maven est configuré (à l'invite de commande: mvn --version)

2

J'ai eu le même problème. J'ai Windows xp box et lorsque je saisis mvn -versionà l'invite de ligne de commande, j'ai le message d'erreur redouté

"Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher"

J'ai confirmé que ma M2_HOMEvariable était définie sur le chemin où Maven a été installé sur le PC et que leecho %path% j'ai confirmé que Maven était sur mon chemin.

Je cherchais une solution depuis des heures lorsque je suis tombé sur ma solution (je dis ma solution parce que je sais que ce ne sera probablement pas la solution pour tous ceux qui obtiennent la même erreur).

J'ai copié le chemin attribué à ma M2_HOMEvariable. J'ai ouvert une fenêtre cmd et tapé cd et collé le chemin que j'ai obtenu de monM2_HOME variable. À ce stade, je savais que le chemin était correct car le chemin était affiché dans la fenêtre. À ce stade, j'ai entré la commande dir et à ma grande surprise, j'ai eu l'erreur File Not Found.

Je suis allé sur ce chemin via Explorer et bien sûr, il y avait des fichiers présents. J'ai remarqué que les dossiers étaient effacés, mais je pouvais y accéder et voir les fichiers dans chaque dossier (j'ai des droits d'administrateur sur mon PC). J'ai regardé les propriétés du dossier parent de Maven et j'ai vu que la case Caché était cochée. J'ai supprimé le chèque et appliqué et essayé à nouveau ma commande dir avec succès.

Ensuite, j'ai réessayé la mvn –versioncommande, mais cette fois j'ai récupéré les résultats attendus.

C:\>mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
Maven home: C:\Program Files\apache-maven-3.0.3
Java version: 1.5.0_16, vendor: Sun Microsystems Inc.
Java home: C:\Java\jdk1.5.0_16\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

Enfin, j'ai créé un fichier jar et war et mon application Web s'est exécutée avec succès sur mon Tomcat local.

J'espère que cela aidera certains d'entre vous.


2

installer la version binaire de maven résout les problèmes

apache-maven-3.6.1-bin.zip


1

Outre ce que @khmarbaise a souligné, je pense que vous avez mal saisi votre JAVA_HOME. Si vous avez installé dans l'emplacement par défaut, alors il ne devrait pas y avoir de "-" (trait d'union) entre jdk et 1.7.0_04. Donc ce serait

JAVA_HOME C:\Program Files\Java\jdk1.7.0_04 

Merci mais malheureusement je l'ai mal tapé ici seulement et c'était la même chose que vous avez dit, «sans trait d'union».
manofsins

1

Pour les autres personnes qui pourraient rencontrer cela, n'oubliez pas de vérifier ~ / .mavenrc pour les paramètres M2_HOME ou JAVA_HOME.


1

Essayez de télécharger un zip binaire (par exemple Maven 3.0.5 (zip binaire)) au lieu de la source complète sur le site officiel de maven. Assurez-vous également que la ligne de commande reconnaît les commandes java et javac. J'ai remarqué que Maven Source zip n'incluait aucune bibliothèque dans le dossier lib, mais Binary zip les avait + dans le dossier de démarrage, il avait plexus-classworlds-2.4.jar. Le problème était peut-être lié à l'absence de ces bibliothèques. Quoi qu'il en soit, cela m'a aidé donc mon M2_HOME est: C: \ Program Files \ Java \ apache-maven-3.0.5 et à PATH j'ai mis: C: \ Program Files \ Java \ apache-maven-3.0.5 \ bin.


1

Je trouve que ce problème dans mon centOS est causé par "Oracle Java est remplacé par gcj", après le changement de java par défaut en "Oracle Java", le problème est résolu.

alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 2           /usr/java/jdk1.7.0_67/bin/java

1

Il semble que vous ayez installé les fichiers source (car ils srcne sont fournis que dans les fichiers source et nous n'en avons pas besoin). Essayez d'installer des fichiers binaires à partir de . Et puis définissez les variables d'environnement comme décrit ici . Cela a fonctionné pour moi. Et je suis sûr que cela fonctionnera également pour vous.


1

Je pense que vous téléchargez la mauvaise version. Je rencontre ce problème tout à l'heure, aucune méthode ne fonctionne après la recherche et la recherche. Enfin, j'ai trouvé que le maven que j'ai téléchargé est une archive zip Source . Après être passé à l' archive zip binaire , tout va bien.


J'étais sur le point de publier ceci. C'est exactement le problème auquel j'ai été confronté. Si seulement j'avais lu votre réponse avant, cela m'aurait fait gagner 30 minutes.
Bartho Bernsmann

1

Moi aussi, j'ai été confronté au même problème. Mais dans mon cas, j'ai utilisé le dossier apache-maven-3.3.3-src dans les variables de chemin. Plus tard, j'ai corrigé ceux avec le chemin correct du dossier apache-maven-3.3.3-bin. Cela a résolu le problème. Je ne dis pas que c'est la même erreur signalée ici, mais de cette façon, vous pouvez également obtenir cette erreur et la rectifier. C'est ce que j'essaie de dire ici.


1

Ouvrez un nouveau terminal et procédez comme suit

M2_HOME=/Users/macbook/apache-maven-3.6.1 //Set where maven is
M2=$M2_HOME/bin                          //Set home as bin
export PATH=$M2:$PATH                   //Place the new path

Puis tapez

mvn -version

Vous pouvez le configurer ./bash_profilepour le faire automatiquement chaque fois que vous exécutez le terminal


0

La même erreur peut apparaître exactement même avec des paramètres de variable d'environnement corrects, si vous copiez UNIQUEMENT le binrépertoire dans le répertoire d'installation. Cela whichfonctionne bien, et les novices restent coincés.


0

J'ai eu ce problème lorsque j'ai utilisé Maven 3.5.4 sur OpenJDK 11 sur Ubuntu. L'OpenJDK 11 sur Ubuntu est en fait toujours un JDK10:

$ ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Aug 24 04:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)

J'ai installé OpenJDK d'Oracle dans /opt/jdk-11.0.1 et j'ai exécuté Maven comme ceci:

JAVA_HOME=/opt/jdk-11.0.1 mvn

Cela fonctionne maintenant comme un charme.


0

J'ai eu un problème avec le plugin infaillible lui-même. Revenir à la version 2.6 a fonctionné pour moi. La version 2.18 / 20 / 22.1 m'a donné l'erreur. Maintenant, j'ai essayé la version 3.0.0-M1 du plugin surefire et cela fonctionne.

Donc, quelque chose ne va pas dans le plgin infaillible entre la version 2.6 et 3.0.0. Je suppose qu'il y a quelque chose de codé en dur par défaut qui ne devrait pas.


0

Pour moi, aussi drôle que cela puisse paraître, cela m'a aidé à redémarrer eclipse...


0

Cela a fonctionné pour moi:

  1. Supprimer toutes les références Mavin dans les variables d'environnement
  2. Téléchargez le binaire de mavin
  3. Décompressez-le à l'endroit où vous le souhaitez, ex: C: \ apache-maven-3.6.0
  4. Accédez aux variables d'environnement et ajoutez au système chemin de la variable "C: \ apache-maven-3.6.0 \ bin"
  5. démarrer l'invite de commande en tant qu'administrateur
  6. vérifier la version avec: mvn -v

Résultat CMD:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20: 41: 47 + 02: 00) Maven home: C: \ apache-maven-3.6.0 \ bin ..


0

J'ai également rencontré l'erreur suivante dans mon système (Mac)

Erreur: impossible de trouver ou de charger la classe principale org.codehaus.plexus.classworlds.launcher.Launcher

Après avoir parcouru au hasard, je suis tombé sur le lien " http://maven.apache.org/install.html " qui dit que "JAVA_HOME" devrait être réglé sur "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/ Sommaire / Accueil / jre ".

Quand j'ai changé "JAVA_HOME" comme indiqué ci-dessus dans ".bash_profile", la commande "mvn" a commencé à fonctionner mais la commande "javac -version" a cessé de fonctionner.

Lorsque j'ai tapé la commande "javac -version", j'ai eu l'erreur suivante

Impossible de localiser un exécutable dans "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/javac" (-1)

Par conséquent, j'ai reculé mon "JAVA_HOME" vers "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home" dans ".bash_profile" et ajouté la ligne suivante en haut du script "mvn"

export JAVA_HOME = / Bibliothèque / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre

Désormais, les commandes "mvn" et "javac" fonctionnaient correctement, mais après une observation attentive du script mvn, je ne pouvais pas faire la différence entre les commandes suivantes

/ Bibliothèque / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / bin / java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0. jar -Dclassworlds.conf = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 - Dlibrary.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi-native -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin org.codehaus.plexus.classworlds.launcher.Launcher

/ Bibliothèque / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre / bin / java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6. 0.jar -Dclassworlds.conf = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6. 1 -Dlibrary.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi-native -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6. 1 / bin org.codehaus.plexus.classworlds.launcher.Launcher

Dans ce qui précède, la première commande a provoqué l'erreur suivante

Erreur: impossible de trouver ou de charger la classe principale org.codehaus.plexus.classworlds.launcher.Launcher

tandis que la deuxième commande a bien fonctionné. Veuillez noter que les deux chemins ci-dessus ont la commande "java" tandis que l'un est de "jre" l'autre est de "jdk"

Les autres variables globales sont les suivantes dans ".bash_profile"

export M2_HOME = / Utilisateurs / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1

export PATH = $ PATH: $ M2_HOME / bin


-1

C'est un problème courant lors de la configuration de Maven. Tout ce que vous devez faire est le suivant: -

  1. M2_HOME: - D: \ apache-maven-2.0.11
  2. M2: - D: \ apache-maven-2.0.11 \ bin
  3. Chemin: - Ajoutez-le avec;% M2%

M2_HOME & M2: - doivent être déclarés en tant que variables système et non en tant que variables USER / ADMIN.

Chemin: - Cela peut être la variable système OU la variable USER / ADMIN [PATH]. Variable système de préférence.

Une fois que vous avez soigneusement défini ces 3 variables, vous pouvez vérifier l'installation de Maven comme ci-dessous.

Sur l'invite CMD: -


C: \ Documents and Settings \ ADMIN> mvn --version


Production :-


Apache Maven 2.0.11 (r909250; 2010-02-12 11: 25: 50 + 0530) Version Java: 1.6.0_22 Accueil Java: C: \ Program Files \ Java \ jdk1.6.0_22 \ jre Paramètres régionaux par défaut: en_US, plateforme encodage: Cp1252 Nom du système d'exploitation: version "windows xp": "5.1" arch: "x86" Famille: "windows"

Merci.


-1

À côté des réponses peut-être utiles, mais peut-être trop symptomatiques, en voici une qui tente d'aider à trouver la cause du problème.

Maven est un outil Java en ligne de commande. Cela signifie que ce n'est pas un binaire autonome, c'est une collection de java .jar, interprétée par un jvm ( java.exesous windows, javasous linux).

La mvncommande, est un script. Sous Windows, c'est un script appelé mvn.cmdet sous Linux, c'est un script shell. Ainsi, si vous écrivez:, mvn installque va-t-il se passer:

  1. un interpréteur de commandes ( /bin/shou cmd.exe) est appelé pour le script d'appel réel
  2. ce script définit les variables d'environnement nécessaires
  3. et enfin, il appelle un interpréteur java avec le chemin de classe requis qui contient la fonctionnalité maven.

Le problème est avec (2). Heureusement, ce script est simplement, très simple. Pour un programmeur java, déboguer un script autour de 20 lignes ne devrait pas être un gros problème, même s'il s'agit d'un langage un peu étranger.

Sous Linux, vous pouvez déboguer des shellscripts en donnant le -xdrapeau à votre interpréteur shell (ce qui est très probablement bash). Sous Windows, vous devez trouver un autre moyen de déboguer un cmd.exescript. Alors, au lieu de mvn install, donnez la commande bash -x mvn install.

Le résultat est comme:

+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ '[' -f /home/picsa/.mavenrc ']'
+ cygwin=true
+ darwin=false

... pas tant de choses ...

+ MAVEN_PROJECTBASEDIR='C:\peter\bin'
+ export MAVEN_PROJECTBASEDIR
+ MAVEN_CMD_LINE_ARGS=' '
+ export MAVEN_CMD_LINE_ARGS
+ exec '/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin/java' -classpath 'C:\peter/boot/plexus-classworlds-*.jar' '-Dclassworlds.conf=C:\peter/bin/m2.conf' '-Dmaven.home=C:\peter' '-Dmaven.multiModuleProjectDirectory=C:\peter\bin' org.codehaus.plexus.classworlds.launcher.Launcher
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden

À la fin, vous pouvez facilement tester quelle variable d'environnement a mal tourné, et vous pouvez très facilement corriger votre script (ou le définir ce qui est nécessaire).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.