linux - configurar - Haga que $ JAVA_HOME se pueda cambiar fácilmente en Ubuntu
set java_home ubuntu (8)
En Ubuntu, me gustaría cambiar mi variable de entorno JAVA_HOME entre Java 5 y 6.
Abro un terminal y escribo lo siguiente para establecer la variable de entorno JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
Y en esa misma ventana de terminal, escribo lo siguiente para verificar que la variable de entorno se haya actualizado:
echo $JAVA_HOME
Y veo /usr/lib/jvm/java-1.5.0-sun que es lo que espero ver. Además, modifico ~ / .profile y establezco la variable de entorno JAVA_HOME en /usr/lib/jvm/java-1.5.0-sun.
Y ahora el problema: cuando abro una nueva ventana de terminal y reviso la variable de entorno JAVA_HOME escribiendo echo $ JAVA_HOME veo que mi variable de entorno JAVA_HOME ha sido revertida a Java 6. Cuando reinicio mi máquina (o registro) una y otra vez, supongo) la variable de entorno JAVA_HOME está configurada en Java 5 (presumiblemente debido a la modificación que hice en mi ~ / .profile).
¿Hay alguna forma de evitar esto para poder cambiar mi entorno JAVA_HOME sin tener que desconectarme y volver a entrar (Y hacer que ese variable de entorno se adhiera en todas las nuevas ventanas de terminal)?
Coloque las variables de entorno en el /etc/environment
global /etc/environment
:
...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...
Ejecute "source / etc / environment" en cada shell donde desee que se actualicen las variables:
$ source /etc/environment
Verifique que funcione:
$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun
Genial, no es necesario desconectarse.
Si desea establecer la variable de entorno JAVA_HOME solo en el terminal, configúrelo en el archivo ~ / .bashrc .
Después de realizar cambios en .profile, debe ejecutar el archivo para que los cambios surtan efecto.
root@masternode# . ~/.profile
Una vez hecho esto, el comando echo funcionará.
Eche un vistazo a bash(1)
, necesita un shell de inicio de sesión para recoger el ~/.profile
, es decir, la opción -l
.
Esto probablemente resolverá su problema: https://help.ubuntu.com/community/EnvironmentVariables
Variables de entorno de sesión
Para establecer variables de entorno de una manera que afecte el entorno de un usuario en particular, no se deben colocar comandos para establecer sus valores en archivos de script de shell particulares en el directorio de inicio del usuario, pero use:
~ / .pam_environment: este archivo está específicamente diseñado para configurar el entorno de un usuario. No es un archivo de script, sino que consiste en expresiones de asignación, una por línea.
No recomendado:
~ / .profile: este es probablemente el mejor archivo para ubicar las asignaciones de variables de entorno, ya que DisplayManager lo ejecuta automáticamente durante la sesión de escritorio del proceso de inicio y también por el shell de inicio de sesión cuando se inicia sesión desde la consola de texto.
Necesita poner definición de variable en el archivo ~/.bashrc
.
De la página de bash man:
Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, bash lee y ejecuta comandos desde /etc/bash.bashrc y ~ / .bashrc, si estos archivos existen.
Pruebe estos pasos.
- Vamos a editar "etc / profile". Las variables de entorno deben ingresarse en la parte inferior del archivo. Como Ubuntu no da acceso a la carpeta raíz, tendremos que usar algunos comandos en la terminal
Paso 1: Inicie la Terminal. Escriba en comando: gksudo gedit /etc/profile
Paso 2: se abrirá el archivo de texto de perfil. Ingrese las variables de entorno en la parte inferior de la página ........... Ej .: export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java
export PATH=/home/alex/jdk1.6.0_22/bin:$PATH
paso3: guarda y cierra el archivo. Verifique si las variables de entorno están establecidas usando el comando echo ........ Ej echo $PATH
Sé que esta es una pregunta largamente fría, pero surge cada vez que hay una versión Java reciente o reciente. Ahora esto se aplicaría fácilmente al intercambio 6 y 7.
He hecho esto en el pasado con update-java-alternatives
: http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.html
Tradicionalmente, si solo desea cambiar la variable en sus ventanas de terminal, .bashrc
en el archivo .bashrc
, que se obtiene cada vez que se abre un nuevo terminal. .profile
archivo .profile
no se obtiene cada vez que abre una nueva terminal.
Vea la diferencia entre .profile y .bashrc en cuestión: ¿Cuál es la diferencia entre .bashrc, .bash_profile y .environment?
.bashrc
debería resolver su problema. Sin embargo, no es la solución adecuada ya que estás usando Ubuntu. Consulte la página de ayuda de Ubuntu " Variables de entorno de toda la sesión ". Por lo tanto, no es de extrañar que .profile
no funcione para usted. Yo uso Ubuntu 12.04 y xfce. Configuré mi .profile
y simplemente no está entrando en vigencia incluso si .profile
sesión y adentro. Experiencia similar here . Por lo tanto, es posible que tenga que usar el archivo .pam_environment
y olvidarse por .profile
de .profile
y .bashrc
. Y NOTE que .pam_environment
no es un archivo de script.