2012-06-03 15 views
32

Tengo un problema patético con Java en mac osx 10.7.3. Anteriormente lo instalé y funcionaba bien. Después de algunos cambios en el .bash_profile y el archivo .profile en el transcurso del tiempo, estoy teniendo un error comoNo se puede encontrar un ejecutable en "/ usr/bin/java/bin/java" (-1)

Unable to locate an executable at "/usr/bin/java/bin/java" 

siempre que intente ejecutar "javac" o "java" en mi terminal.

echo $PATH da una salida como:

/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 

Mi .bash_profile se parece a:

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start" 
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop" 
export JAVA_HOME=/usr/bin/java 

salida de which java

/usr/bin/java 

Su me molesta para los días largos y desinstalar e instalar Java no ayudó a mi suerte.

Soy un novato en Mac y necesito ayuda para resolver este problema.

Busqué en Google y vi SOF antes de publicar esta pregunta pero no encontré nada específico para mi problema.

Gracias

Sabya

+3

No entendí sobre el -1. ¿Puedes explicarme? – Sabya

Respuesta

67

Sin duda alguna, export JAVA_HOME=/usr/bin/java es el culpable. Esta env var debe apuntar al directorio de instalación de JDK o JRE. La búsqueda en Google muestra que la mejor opción para MacOS X parece ser export JAVA_HOME=/Library/Java/Home.

+2

exportar JAVA_HOME =/Library/Java/Home en .bash_profile funcionó perfectamente .Gracias por la ayuda. :-) – Sabya

+14

La mía se instaló en '/ Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home'. – cloudrave

+1

Esto funcionó perfectamente para mí también, aunque no lo entiendo. Si en cuanto a "qué java", la consola devuelve/usr/bin/java, entonces ¿por qué tenemos que establecer una ruta diferente? – Loebre

9

JAVA_HOME es no es el nombre del ejecutable de Java. Pero del directorio, java se instaló en. El ejecutable debe ser $JAVA_HOME/bin/java.

El comando which no es útil para usted allí. No le dará la casa java, pero lo más probable es que se trate de un contenedor o un enlace simbólico a java instalado en un directorio muy diferente.

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

Porque:

$ 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/Contenidos/Inicio/bin/javac /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javadoc /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/ Inicio/bin/javafxpackager /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Ho Me/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

0

he tenido el mismo problema, y ​​después de leer esta publicación he verificado la definición JAVA_HOME en .bash_profile. En realidad, es:

export JAVA_HOME=$(which java) 

que, tal y como Anony-Mousse está explicando, es el ejecutable. Si lo cambia a:

export=/Library/Java/Home 

corrige el problema, aunque todavía es interesante entender por qué se valora de esta forma en el archivo de perfil.

Cuestiones relacionadas