para - java se 6 download
Cómo revertir a Java 1.6 en Mac OS X 10.7.5 (3)
Tengo el instalador 1.6. Lo he usado No cambia mi instalación de Java, ni dice que hay una versión anterior, pero sí completa la instalación.
He estado trabajando un poco con los enlaces simbólicos, pero no importa lo que haga, corriendo
java -version
en terminal siempre resulta en
Daves-MacBook-Pro:core-server dave$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Mi aplicación funciona con GAE, que NO utiliza Java 1.7 en absoluto. Como tal, no puedo compilar mi código usando 1.7! Tengo que usar 1.6, pero no he podido encontrar una manera de eliminar 1.7 o de lo contrario forzar que la compilación / compilación ocurra en 1.6.
Una nota final: estoy ejecutando una herramienta de compilación en la línea de comandos, por lo que cambiar la configuración del proyecto en Eclipse no parece que ayude.
Las herramientas de línea de comandos de java
, javac
, etc. son sensibles al valor de la variable de entorno JAVA_HOME
y usarán 1.6 si esta variable apunta a un JDK de 1.6. La herramienta /usr/libexec/java_home
es tu amigo aquí. Corriendo
/usr/libexec/java_home
imprimirá el valor JAVA_HOME
apropiado para el JDK más actualizado en su sistema. Esto será Java 7, pero puede aplicar restricciones usando el indicador -v
, por ejemplo
/usr/libexec/java_home -v ''1.6*''
devolverá un valor JAVA_HOME
para el mejor 1.6 JDK disponible en su sistema. Puedes usar este valor para establecer JAVA_HOME
:
export JAVA_HOME=`/usr/libexec/java_home -v ''1.6*''`
ya sea como una sola vez para una sesión de Terminal en particular, o de forma permanente para todas las futuras sesiones de terminal, agregando la línea anterior al archivo .bash_profile
en su directorio de inicio.
$ export JAVA_HOME=`/usr/libexec/java_home -v ''1.6*''`
$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
$ export JAVA_HOME=`/usr/libexec/java_home -v ''1.7*''`
$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
Me encontré con un problema similar. Después de haber instalado JDK7, algunas de mis aplicaciones ya no funcionaban. Necesitaba volver a JDK6, y lo hice de manera diferente. Noté que en mi /System/Library/Frameworks/JavaVM.framework/Versions/, mostraba lo siguiente:
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Oct 25 17:01 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Oct 25 18:06 A
lrwxr-xr-x 1 root wheel 1 Oct 25 17:01 Current -> A
lrwxr-xr-x 1 root wheel 59 Nov 20 21:40 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/
Así que quité el enlace simbólico CurrentJDK
sudo rm CurrentJDK
y volví a crear el enlace simbólico que apunta a JDK6, que todavía está en mi Mac
sudo ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/ CurrentJDK
y eso hizo el truco para mi
java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
Si necesita escribir el código que desea ejecutar en una versión anterior de Java, puede cambiar los indicadores de compilación. Esto podría ser todo lo que necesitas y
p.ej.
javac -source 1.6 -target 1.6 MyClass.java
La fuente arg indica que la fuente está escrita en esa versión de Java, por lo tanto, List<String> strings = new ArrayList<>();
Sería un error de compilación. Target le dice al compilador que compile el código de byte que está dirigido a la versión especificada de la JVM. Aunque creo que 1.7 es totalmente compatible con versiones anteriores con 1.5 y 1.6.