He creado una secuencia de comandos Bash con la siguiente línea:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home" 2> bash_errors.txt
También he hecho el archivo ejecutable
chmod 777 bash_test
Cuando ejecuto el script y compruebo
java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
Sin embargo, si ejecuto directamente en Bash
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home"
Y luego marque
java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
La ruta cambia. Además, si cambio la línea de script a
sudo export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home" 2> bash_errors.txt
Obtengo lo siguiente en el archivo bash_errors.txt
sudo: export: command not found
Así que sé que el script se está ejecutando, pero JAVA_HOME no cambia cuando se ejecuta desde el script.
¿Qué no estoy entendiendo? ¿Cómo cambio la variable de entorno JAVA_HOME desde un script?
Mi objetivo es permanentemente cambiar JAVA_HOME de 8 a 7; eventualmente agregaré .bash_profile a mi directorio predeterminado.
Editar
Los intentos de cambiar los archivos mencionados en la referencia vinculada son de solo lectura, incluso usando sudo vim
: