10 votes

Erreur JAVA_HOME lors de la construction de maven, Version OSX-10.8.4

Error: JAVA_HOME is not defined correctly.
  We cannot execute
  /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

J'ai mis à niveau mon OSX vers 10.8.4. Après la mise à jour d'OSX, j'ai mis à jour mon JDK et JRE à 7. Mais j'obtiens l'erreur ci-dessus lorsque j'essaie de construire un projet avec maven.

Quand je cours ls -al /System/Library/Frameworks/JavaVM.framework/Versions/

Je reçois la réponse suivante

drwxr-xr-x  11 root  wheel  374 Jul 22 22:33 .
drwxr-xr-x  10 root  wheel  340 Jul 22 18:30 ..
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 Jul 22 18:30 1.6.0 -> CurrentJDK
drwxr-xr-x   7 root  wheel  238 Jul 22 18:30 A
lrwxr-xr-x   1 root  wheel    1 Jul 22 18:30 Current -> A
lrwxr-xr-x   1 root  wheel   59 Jul 22 18:30 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

Pour cette ls -al /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin

Je ne vois pas de contenu dans CurrentJDK plus loin.

En cours d'exécution /usr/libexec/java_home

J'ai compris :

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

Je suis plutôt novice en matière de travail avec OS X. Faites-moi savoir si j'ai manqué un point quelconque pour réussir.

9voto

yuriel Points 222

Apple recommande de définir JAVA_HOME à "/usr/libexec/java_home".

Ce qui a fonctionné pour moi, c'est d'enrouler ceci autour de $(). J'ai donc fini par configurer JAVA_HOME comme $(/usr/libexec/java_home) avec les commandes suivantes :

vim ~/.bash_profile 
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile

2voto

yoliho Points 340

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java s'il existe, c'est le Java fourni par Apple dont la dernière version serait un JRE 1.6.

Pour utiliser le JDK d'Oracle (le java 7 que vous mentionnez), utilisez le chemin /usr/bin/java si vous l'avez installé complètement. Notez que le JRE est uniquement destiné aux applets Java et n'affecte donc pas /usr/bin/java.

Pour plus d'informations, consultez la documentation d'installation d'Oracle

et noter à partir de là

Pour exécuter une version différente de Java, il faut soit spécifier le chemin complet, soit utiliser l'outil java_home :

/usr/libexec/java_home -v 1.7.0_06 --exec javac -version

Pour plus d'informations, consultez la page de manuel java_home(1).

1voto

Shubham Verma Points 11

Suivez ce lien : https://stackoverflow.com/a/44564303/5005676 Si vous voyez le mvn script : Le code échoue ici ---

Étapes du débogage et de la réparation :

Etape 1 : Ouvrir le mvn script /Users/Username/apache-maven-3.0.5/bin/mvn (Ouvrir avec la commande less comme : less /Users/Username/apache-maven-3.0.5/bin/mvn)

Étape 2 : Trouvez le code ci-dessous dans le script :

  if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly."
  echo "  We cannot execute $JAVACMD"
  exit 1
fi

Étape 3 : Cela se produit parce que la variable JAVACMD n'a pas été définie. Il affiche donc l'erreur.

Note : Pour le réparer

export JAVACMD=Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/

Clé : Si vous voulez qu'elle soit permanente ouvrez emacs.profile

affichez les commandes et appuyez sur Ctrl-x Ctrl-c (save-buffers-kill-terminal).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X