J'ai un problème pathétique avec Java dans mon mac osx 10.7.3 . Je l'avais précédemment installé et tout fonctionnait bien . Après quelques modifications apportées aux fichiers .bash_profile et .profile au fil du temps , J'ai une erreur comme
Unable to locate an executable at "/usr/bin/Java/bin/Java"
chaque fois que j'essaie d'exécuter "javac" ou "Java" dans mon terminal.
echo $PATH
donne un résultat comme:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/sabya/Documents/Play_Framework/play-2.0:/usr/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin
Mon .bash_profile ressemble à:
alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"
export Java_HOME=/usr/bin/Java
Sortie de which Java
/usr/bin/Java
Cela me dérange pendant de longues journées et la désinstallation et l’installation de Java n’ont pas aidé ma chance.
Je suis un débutant sur Mac et j'ai besoin d'aide pour résoudre ce problème.
Googlé et vu SOF avant de poster cette question mais n'a rien trouvé de spécifique à mon problème.
Merci
Sabya
Très certainement, export Java_HOME=/usr/bin/Java
est le coupable. Cette variable d'environnement doit pointer vers le répertoire d'installation du JDK ou du JRE. Googler montre que la meilleure option pour MacOS X semble être export Java_HOME=/Library/Java/Home
.
Java_HOME
est pas le nom de l'exécutable Java . Mais du répertoire, Java était installé. L’exécutable devrait être $Java_HOME/bin/Java
.
La commande which
ne vous est pas utile. Cela ne vous donnera pas la maison Java, mais il s'agit très probablement d'un wrapper ou d'un lien symbolique vers Java installé dans un répertoire très différent.
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Parce que:
$ find /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home -name Java*
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/Java
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javac
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javadoc
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javafxpackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javah
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javap
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javapackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/javafx-src.Zip
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/Java
j'ai rencontré le même problème, et après avoir lu ce post, j'ai vérifié deux fois la définition de Java_HOME
dans .bash_profile
. C'est en réalité:
export Java_HOME=$(which Java)
c'est exactement ce que Anony-Mousse explique, est l'exécutable. Le changer pour:
export=/Library/Java/Home
résout le problème, mais il est toujours intéressant de comprendre pourquoi il est ainsi valorisé dans le fichier de profil.