web-dev-qa-db-fra.com

étrange problème avec les dépendances Java_HOME et maven

La variable Java_HOME est définie sur C:\Program Files\Java\jre6\ lorsque je lance le package maven sur le projet, il me dit qu'il ne peut pas résoudre les dépendances.

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (default) on project roo: Execution default of goal o
rg.codehaus.mojo:aspectj-maven-plugin:1.0:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.0 or one of its dependencies
could not be resolved: Could not find artifact com.Sun:tools:jar:1.4.2 at specified path C:\Program Files\Java\jre6/../lib/tools.jar ->
[Help 1]

il suppose donc que Java_HOME est en réalité d'un niveau plus profond que ce qu'il est en réalité, j'ai parcouru le référentiel local maven et découvert que log4j 1.2.16 utilise cette dépendance

J'ai essayé de faire en sorte que Java_HOME ressemble à C:\Program Files\Java\jre6\bin\ mais alors maven ne voulait pas s'exécuter, il m'a dit que mon chemin Java_HOME était incorrect

14
michael nesterenko

Vous aurez besoin d’un JDK Java, et pas seulement d’un JRE. Vous pouvez en obtenir un sur Page Java d'Oracle

Edit: À partir du Guide des propriétés Maven :

${Java.home} specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${Java.home}../bin/Java.exe</jvm>

Et avec un JDK par exemple dans c:\jdk, le maven $ {Java.home} pointe vers c:\jdk\jre

16
moritz

J'ai aussi trouvé cela qui m'a aidé.

... Avec Eclipse, vous devez vérifier que les JRE installés utilisent des installations JDK.

Cela signifie que dans l'option de configuration ... Fenêtre/Préférences/Java/JRE installés ... Vous devez indiquer une installation JDK. 

Vous devez changer le chemin du jre dans le jdk. pour% Program Files%\Java\jdk1.6.0_25\jre

8
Garry Taylor

La variable Java.home peut être dérivée de votre projet pom.xml. Vérifiez deux fois votre référence de plug-in de compilateur maven. J'ai eu le même problème, en essayant de construire, de pleurnicher qu'il ne puisse pas trouver de javac. Mon Java.home, Java_HOME ont tous été configurés correctement. 

Ce qui s’est avéré être FIX pour moi, c’est de corriger le fichier pom.xml. Les modifications suivantes ont été apportées:

            <!-- Original Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>${default.Java.version}</source>
                <target>${default.Java.version}</target>
                <showDeprecation>false</showDeprecation>
                <executable>${default.Java.home}/bin/javac</executable>
                <compilerVersion>${default.Java.version}</compilerVersion>
                <fork>true</fork>
            </configuration>

            <!-- MODIFIED Version of compiler plugin reference -->
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>

                <!-- SPECIFY A DISCRETE VERSION!! Do not let it derive it! -->
                <source>1.6</source>
                <target>1.6</target>

                <!--
                  <showDeprecation>false</showDeprecation>
                  <executable>${default.Java.home}/bin/javac</executable>
                  <compilerVersion>${default.Java.version}</compilerVersion>
                  <fork>true</fork>
               -->
            </configuration>
2
eric manley

Avait le même problème aujourd'hui. Il s'avère que j'avais spécifiquement besoin d'utiliser "Program Files" dans le chemin, malgré l'installation de Windows (et donc du nom du dossier) en allemand.

Ce n'est pas la première fois que ce genre de chose se produit.

Donc, si vous êtes sûr que vos chemins sont corrects, essayez "Program Files" au lieu de votre alternative localisée. Travaillé pour moi.

1
LeShadow

Juste pour ajouter un peu plus d’informations à la réponse concernant la modification des préférences de la fenêtre. J'avais mis leJRElocation comme C:\Program Files\Java\jre7 parce que cela semblait être le choix évident.

Cependant, c'est un échec. La bonne réponse, comme indiqué, est C:\Program Files\Java\jdk1.7.0_10\jre. Je le signale parce que c'est une erreur facile à faire.

1
user2071961

Ce problème se produit également dans Intellij IDEA (IDEA 11.x ~ Windows 7 ~ Java 7). La spécification de la propriété systempath faisait référence à la balise IDEA ... 

Une solution stable consistait à créer un profil maven local sous $ HOME/.m2/settings.xml

<profiles>
  <profile>
    <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
          <jdk>NUMERIC_VERSION</jdk>
        </activation>
        <properties>
          <Java.home>                   
            <!-- ABSOLUTE_PATH_HERE -->
          </Java.home> 
        </properties>
  </profile>
</profiles>
1
Eddie B

Pour que Maven s'exécute, vous devez configurer une variable d'environnement Java_HOME afin qu'elle pointe vers un JDK. 

par exemple. Java_HOME = C:\Program Files\Java\jdk1.7.0_25

Vous devez également disposer de C:\Program Files\Java\jdk1.7.0_25\bin inclus dans la variable d’environnement PATH.

Cordialement, Dipan

0
Dipan

J'ai pu voir la réponse appropriée dans la commande Invite lors de la saisie de Java -version, mais cette erreur s'est produite lors de la saisie de mvn -version.

Dans mon cas, c'était une erreur stupide. La variable d’environnement Java_HOME pointait tous les jours vers le dossier ..\jdk\bin et était à l’origine du problème. Après avoir supprimé le chutier de la valeur de la variable Java_HOME, j'ai pu travailler avec Maven.

Remarque: Le chemin de la variable système doit contenir la valeur qui pointe vers le dossier bin de votre JDK.

Cordialement, Balaji.K

0
kumara balaji

Je viens d'avoir ce problème après une mise à jour automatique Java (sous Windows 7) de mes projets Maven en ligne de commande (problème distinct de la version maven dans Eclipse). La mise à jour automatique de JRE a supprimé le dossier jre du kit JDK désigné par la variable d’environnement système Java_HOME. Comme le jre n’a pas été trouvé, maven utilisait par défaut le JRE nouvellement installé (nous n’avons toujours pas compris comment). J'ai restauré le dossier jre sous mon répertoire JDK et supprimé une référence à C:\ProgramData\Oracle\Java\javapath qui avait été ajoutée au début de la variable chemin système, et la construction maven est redevenue normale.

0
ddjonline

Vous devez également vous assurer que la bibliothèque Java est sur le chemin de classe de votre projet. Accédez à l'onglet Propriétés -> Chemin de construction Java -> Bibliothèques du projet. Vérifiez si la bibliothèque jdk est listée. Sinon ajoutez-le. Cela peut aussi être la cause d'une telle erreur.

0
rst

j'ai eu un problème similaire et la réponse est aussi simple que cela;

maven ne pouvait pas trouver le Java_HOME varaiable, jusqu'à ce que je réalise, que j'ai écrit le chemin Java dans mon chemin-variable . Donc, la réponse à mon "ERREUR: Java_HOME non trouvé dans votre environnement ..." était de créer un nouvelle variable avec Nom Java_HOME. C'est peut-être un échec pour les nuls, mais il m'a fallu une heure pour réaliser ...

0
locobinary

J'ai rencontré un problème similaire, les éléments suivants ont résolu le problème:

Java_HOME = C:\Program Files\Java\jdk
M2_HOME= C:\Program Files\Apache-maven

inside path = ....%Java_HOME%\bin;%M2_HOME%\bin;

cela a résolu le problème.

0
Naveen

pour écrire, compiler et empaqueter un programme Java, un JDK est nécessaire, car les outils nécessaires sont uniquement distribués avec un JDK (Java Development Kit). JRE (Java Runtime Environment) n’est nécessaire que pour exécuter un programme Java.

0
Salandur

La manière appropriée de configurer les variables d'environnement Java est la suivante: -

  1. Définissez Java_HOME sur votre "dossier jdk"\jre
  2. Ajoutez "jdk folder"\bin à votre variable d’environnement utilisateur PATH 

Java_HOME est l’emplacement de "Java.exe" qui doit provenir du dossier JRE\bin . PATH doit rechercher javac.exe qui doit provenir du dossier JDK\bin.

Cela garantit également que JDK et JRE sont compatibles.

0
codingscientist

Sans jouer avec la variable env Java_HOME, voici comment j'ai pu résoudre le problème.

Installez le jdk 1.6.x.

Dans Eclipse/Preferences sous JRE installés, ajoutez une entrée pour le JDK et définissez-la comme valeur par défaut (définissez l'emplacement sur le dossier JDK, par exemple, C:\Program Files\Java\jdk1.6.0_34

Modifiez les propriétés et ajoutez JDK_HOME/lib/tools.jar à la liste des bibliothèques système.

Sinon, en supposant que le jdk soit installé, vous pouvez ajouter le JDK/lib/tools.jar à la liste des bibliothèques système de votre JRE par défaut existant.

0
Vivek