web-dev-qa-db-fra.com

Impossible de localiser un fichier exécutable dans "/ usr/bin/Java/bin/Java" (-1)

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

41
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.

80
Alexander Pavlov

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.

10
Anony-Mousse
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
8
abc

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.

0
Bruno Ripa