Hacer JAVA JAVA HOME fácilmente cambiable en Ubuntu [cerrado]


En Ubuntu, me gustaría cambiar mi variable de entorno JAVA_HOME entre Java 5 y 6.

Abro una 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 comprobar que la variable de entorno se ha actualizado:

echo $JAVA_HOME

Y veo /usr/lib/jvm/java-1.5.0-sun que es lo que estoy esperando ver. Además, modifico ~/.perfil y establecer el JAVA_HOME variable de entorno a/usr/lib/jvm / java-1.5.0-sun.

Y ahora para el problema when cuando abro una nueva ventana de terminal y compruebo mi variable de entorno JAVA_HOME escribiendo echo echo JAVA_HOME veo que mi variable de entorno JAVA_HOME ha sido revertida a Java 6. Cuando reinicio mi máquina (o salgo y vuelvo a entrar, supongo) la variable de entorno JAVA_HOME se establece en Java 5 (presumiblemente debido a la modificación que hice en mi ~/.perfil).

Hay una manera alrededor de esto para que pueda cambiar mi entorno JAVA_HOME sin tener que cerrar sesión y volver a entrar (Y hacer que la variable de entorno change stick en todas las ventanas de terminal nuevas)?

Author: Michael Scheper, 2010-04-16

8 answers

Ponga las variables de entorno en el archivo global /etc/environment:

...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...

Ejecuta "source / etc / environment"en cada shell donde quieras que se actualicen las variables:

$ source /etc/environment

Compruebe que funciona:

$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun

Genial, no es necesario cerrar sesión.

Si desea establecer la variable de entorno JAVA_HOME solo en la terminal, establézcala en ~/.archivo bashrc.

 193
Author: Martin Konicek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-03 00:19:36

Esto probablemente resolverá su problema: https://help.ubuntu.com/community/EnvironmentVariables

Variables de entorno de toda la sesión

Para establecer variables de entorno de una manera que afecte al entorno de un usuario en particular, no se deben colocar comandos para establecer sus valores en archivos de script de shell en particular en el directorio personal del usuario, sino usar:

~/.pam_environment - Este archivo está diseñado específicamente para establecer ambiente. No es un archivo de script, sino que consiste en expresiones de asignación, una por línea.

No recomendado:

~/.perfil-Este es probablemente el mejor archivo para colocar asignaciones de variables de entorno, ya que se ejecuta automáticamente por el DisplayManager durante la sesión de escritorio del proceso de inicio, así como por el shell de inicio de sesión cuando uno inicia sesión desde la consola textual.

 30
Author: Holger Frohloff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-16 19:38:23

Prueba estos pasos.

Edit Vamos a editar "etc \ profile". Las variables de entorno se deben introducir en la parte inferior del archivo. Puesto que Ubuntu no dar acceso a la carpeta raíz, tendremos que utilizar algunos comandos en el terminal

Paso 1: Iniciar Terminal. Escriba el comando: gksudo gedit /etc/profile

Paso2: Se abrirá el archivo de texto del perfil. Introduzca las variables de entorno en la parte inferior de la página........... Eg: export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

Paso3: guarde y cierre el archivo. Compruebe si las variables de entorno se establecen mediante el comando echo........ Eg echo $PATH

 13
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-11 08:29:27

Debe poner la definición de variable en el archivo ~/.bashrc.

De la página man de bash:

Cuando un shell interactivo que es no se ha iniciado un shell de inicio de sesión, bash lee y ejecuta comandos desde /etc / bash.bashrc y ~/.bashrc, si estos archivos existen.

 9
Author: Paweł Nadolski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-07 18:00:22

Tradicionalmente, si solo desea cambiar la variable en las ventanas de su terminal, establézcala en el archivo .bashrc, que se obtiene cada vez que se abre un nuevo terminal. .profile el archivo no se obtiene cada vez que abre un nuevo terminal.

Ver la diferencia entre .perfil y .bashrc en cuestión: ¿Cuál es la diferencia entre .bashrc, .bash_profile y .medio ambiente?

.bashrc debería resolver tu problema. Sin embargo, no es la solución adecuada ya que está utilizando Ubuntu. Ver la página de ayuda de Ubuntu relevante " Variables de entorno de 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á teniendo efecto incluso si salgo y entro. Experiencia similar aquí . Así que puede que tengas que usar .pam_environment file y olvidarte totalmente de .profile, y .bashrc. Y TENGA en cuenta que .pam_environment no es un archivo de script.

 5
Author: HongboZhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:13

Echa un vistazo a bash(1), necesita un shell de inicio de sesión para recoger la ~/.profile, es decir, la opción -l.

 1
Author: Nikolai Fetissov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-16 19:35:18

Sé que esta es una pregunta larga y fría, pero surge cada vez que hay una nueva o reciente versión importante de Java. Ahora bien, esto se aplicaría fácilmente al intercambio de 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

 1
Author: Alain O'Dea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-04 04:09:34

Después de hacer cambios a .perfil, es necesario ejecutar el archivo, para que los cambios surtan efecto.

root@masternode# . ~/.profile

Una vez hecho esto, el comando echo funcionará.

 1
Author: CodeShane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-12 20:04:16