Ho creato uno script Bash con la seguente riga:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home" 2> bash_errors.txt
Ho anche reso eseguibile il file
chmod 777 bash_test
Quando eseguo lo script e controllo
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)
Tuttavia, se eseguo direttamente in Bash
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home"
E poi controlla
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)
Il percorso cambia. Inoltre, se cambio la riga di script in
sudo export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home" 2> bash_errors.txt
Ho ottenuto quanto segue nel file bash_errors.txt
sudo: export: command not found
Quindi so che lo script è in esecuzione, ma JAVA_HOME non cambia quando viene eseguito dallo script.
Che cosa non capisco? Come cambio la variabile d'ambiente JAVA_HOME da uno script?
Il mio obiettivo è quello di permanentemente modificare JAVA_HOME da 8 a 7 - Alla fine aggiungerò .bash_profile alla mia directory predefinita.
Edit
Cercando di cambiare i file menzionati nel riferimento collegato sono di sola lettura, anche usando sudo vim
: