java - para - jdk 32 bits
Después de actualizar a Java8, javac aún muestra 1.7 (6)
En primer lugar, debe descargar e instalar jdk8 ( http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html )
En segundo lugar, verifique algo de la siguiente manera: ¿su sistema ya tiene un uso de java 8 no vinculado para shell? Pruebe esto en su terminal (sí, los apóstrofos son importantes):
$ ''/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'' -version
si muestra "versión de Java" 1.8.0_131 "", y luego puede ir al siguiente paso.
En tercer lugar, edite el bash_profile:
$ vi ~/.bash_profile
y escribe esto:
JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib
export JAVA_HOME
export CLASSPATH
guárdalo y sal, entonces
source ~/.bash_profile
Después de los pasos anteriores, y compruebe la versión de Java
$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Tengo problemas para actualizar desde JDK 1.7 -> 1.8 en OSX. La actualización se completó, pero javac aún devuelve 1.7 como versión.
Descargué JDK 8_u5 de la página de inicio de Oracle y ejecuto el instalador.
También tomé los siguientes pasos después de la instalación:
> export JAVA_HOME=`/usr/libexec/java_home -v 1.8` (Executed in my .bashrc file)
> echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
> javac -version
javac 1.7.0_21
> $JAVA_HOME/bin/javac -version
javac 1.7.0_21
> $JAVA_HOME/bin/java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
He revisado y eliminado Java 1.7 (y todas las demás versiones de JDK) y luego volví a ejecutar el instalador:
> ls /Library/Java/JavaVirtualMachines
jdk1.8.0_05.jdk
Todavía no tiene uso, javac informa la versión como 1.7.0_21
> which javac
/usr/bin/javac
> ls -ltra /usr/bin/javac
[snipped] /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
Dentro de esa ruta, Current
es un enlace simbólico a A
El contenido de A/Commands
es una serie de archivos (no enlaces simbólicos).
> cd A/Commands
> ./javac -version
javac 1.7.0_21
> ./java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Editar
Además de la publicación original, he hecho algunas excavaciones con jenv , como se sugiere en esta respuesta .
> jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
> jenv global oracle64-1.8.0.05
> jenv version
oracle64-1.8.0.05 (set by /Users/martypitt/.jenv/version)
> jenv info java
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/java
> jenv info javac
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/javac
> javac -version
javac 1.7.0_21
Esto arroja una dispersión en mis pensamientos de que este era un javac al azar que acechaba en mi camino, que de alguna manera era invocado.
Para estar seguro, he destruido completamente mi Java e intenté de nuevo:
> cd /Library/Java/JavaVirtualMachines
> ls
jdk1.7.0_55.jdk
jdk1.8.0_05.jdk
> sudo rm -rf *
> ls
<<empty>>
> java -version
java version "1.6.0_65"
> javac -version
javac 1.6.0_65
> which javac
/usr/bin/javac
Luego volví a descargar una copia nueva del instalador y la ejecuté.
> java -version
java version "1.8.0_05"
> javac -version
javac 1.7.0_21
Actualizar
Traté de eliminar todas las JDK, XCode y todas las herramientas de desarrollo, y reinstalé nuevas. Mismos resultados
Sin embargo, todavía estoy perdido, ¿a dónde voy desde aquí? ¿Cómo consigo que javac 1.8 se instale?
Esto es (lo más probable) un error en el proceso de instalación de jre8 .
Obtengo exactamente el mismo comportamiento cuando navego a mi carpeta jre8 , que es la que Windows (en mi caso) muestra de forma predeterminada:
- versión de Java: 1.8.0, entorno de ejecución 1.8.0-b132, punto de acceso 64-bit JVM 25.0-b70
- Versión javac: 1.7.0_25
Cuando navega hacia el directorio jdk8 , muestra lo siguiente:
- versión de Java: 1.8.0, entorno de ejecución 1.8.0-b132, punto de acceso 64-bit JVM 25.0-b70
- versión javac: 1.8.0
Sin embargo, me acabo de dar cuenta de que el jre nunca envía un javac , entonces supongo que esto es un problema en la configuración de referencia en el sistema operativo.
Para solucionarlo, necesitaría corregir manualmente la referencia javac en su sistema operativo.
Para usuarios de Windows:
Es posible, que tenga que cambiar su variable PATH. Intente configurar su "% JAVA_HOME% / bin" como la primera entrada en la RUTA.
Entonces ahora se ve así:
PATH C:/Program Files/anyprogram;C:/Program Files/...;%JAVA_HOME%/bin
Y lo cambias así:
PATH %JAVA_HOME%/bin;C:/Program Files/anyprogram;C:/Program Files/...
Motivo: cualquier otro programa inicia primero otra versión de Java.
Quizás puedas eliminar el archivo .jar estándar que está en tu classpath. Cuando elimino el jar en /Library/Java/Extensions
, el problema será resuelto. Más información: error de compilación de Java: Mac
Si /usr/libexec/java_home -v 1.8.0_05 --exec javac -version
devuelve la versión correcta, entonces su problema es con:
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
Con un usuario privilegiado ejecute:
cd /System/Library/Frameworks/JavaVM.framework/Versions/
rm CurrentJDK
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/ CurrentJDK
Solución encontrada en el blog de Mankeh
También verifique esta respuesta en Super User para cambiar dinámicamente las versiones JDK.
Actualización: ¡Creo que encontré al culpable!
Prueba esto:
rm -rf ~/Library/Java/Extensions
sudo rm -rf /Library/Java/Extensions
Solución encontrada en: Java 1.7 en OSX 10.9.2 corriendo como 1.5?
Solo agregando mi propia experiencia aquí, instalé jdk-8u131-macosx-x64 de Oracle. Todo funcionó a la perfección. No hay variables de entorno JAVA_HOME presentes o necesarias.
mehboob$ javac -version
javac 1.8.0_131
mehboob$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
El / Sistema / Biblioteca mostró esto:
mehboob$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 17 2013 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Sep 9 2014 A
lrwxr-xr-x 1 root wheel 1 Oct 17 2013 Current -> A
lrwxr-xr-x 1 root wheel 59 Oct 17 2013 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
Mientras que / Library / Java tenía esto:
mehboob$ ls -l /Library/Java/
total 8
drwxrwxr-x 2 root admin 68 Oct 17 2013 Extensions
lrwxr-xr-x 1 root wheel 48 Oct 17 2013 Home -> /System/Library/Frameworks/JavaVM.framework/Home
drwxr-xr-x 3 root wheel 102 Jun 9 11:43 JavaVirtualMachines
No había nada en Extensiones, mientras que JavaVirtualMachines solo tenía la carpeta jdk1.8.0_131.jdk.
Esto muestra que una instalación predeterminada de JDK funciona correctamente sin necesidad de configuración adicional.