He estado desarrollando en Java en OSX sin problemas por un par de problemas. Ayer comencé a tener fallas extrañas en el compilador (NPE profundas en javac).
Instalé JDK 1.8.0_101, pero javac se informa como 1.8.0_20.
$ which javac
/usr/bin/javac
$ ls -l /usr/bin/javac
lrwxr-xr-x 1 root wheel 74 20 Sep 15:16 /usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac
$ /usr/libexec/java_home 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
$ echo $JAVA_HOME
Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
Entonces todo se ve increíble, pero luego:
$ javac -version
javac 1.8.0_20
¿Alguien tiene alguna sugerencia sobre lo que podría estar causando que seleccione la versión incorrecta? Intenté eliminar todas las JVM, reinstalarlas, reiniciarlas y todo eso.
Editar
Incluso ejecutar javac desde el destino del enlace simbólico informa la versión incorrecta. También confirmé que la suma md5 de /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/javac coincide con la de una instalación saludable.
Respuesta1
Ir a cd /Library/Java/JavaVirtualMachines
. Enumere todos los archivos usando ls
.
Debería haber dos carpetas jdk1.8.0_101.jdk
y jdk1.8.0_20.jdk
. Ingresar sudo rm -rf jdk1.8.0_20.jdk
.
Ahora verifique java -version y javac -version, deberían ser iguales.