Soy nuevo en el sistema Linux y parece que hay demasiadas carpetas Java.
java -version me da:
- versión de Java "1.7.0_55"
- OpenJDK Runtime Environment (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- OpenJDK 64-Bit Server VM (compilación 24.51-b03, modo mixto)
Cuando intento construir un proyecto Maven, recibo un error:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
¿Podría decirme qué archivos necesito modificar para usuarios root y no root y dónde se encuentra Java exactamente?
java
linux
java-home
path-variables
Bosco
fuente
fuente
JAVA_HOME
, no hace daño configurarlo también.source /etc/profile
cambios para que entren en vigencia de inmediato!/etc/profile.d/jdk.sh
flotando en mi sistema.Para todos los usuarios, recomendaría colocar la siguiente línea en
/etc/profile
Esto se actualizará dinámicamente y funciona bien con el sistema de alternativas . Sin embargo, tenga en cuenta que la actualización solo tendrá lugar en un nuevo shell de inicio de sesión.
fuente
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
lugar, tenga en cuenta que yo uso solojava
, nojavac
readlink
solución compatible de actualización / actualización, incluso este es un hilo de 5 años. Solo recomiendo no editar / etc / profile, pero coloque su exportación dentro de un archivo personalizado, por ejemplo/etc/profile.d/java_environment.sh
, tal vez tenga quechmod +x java_environment.sh
reiniciar.dirname
solución . Si eres como yo y quieres entender lo que está sucediendo aquí, este es un simple reemplazo del texto coincidente de la entrada con una cadena vacía. El carácter "predeterminado" para los reemplazos es el/
, pero siempre que sea coherente, puede reemplazarlo/
con cualquier cosa. En este caso son dos puntos como los que usamos/
para los separadores de ruta.Puede usar / etc / profile o mejor un archivo como /etc/profile.d/jdk_home.sh
Debe recordar que este archivo solo se carga con nuevos shells de inicio de sesión. Entonces, después de bash -l o una nueva sesión de gnome y que no cambia con las nuevas versiones de Java.
fuente
/etc/profile.d/*.sh
por lo que su archivo debe llamarsejdk_home.sh
para que se obtenga/etc/profile.d/jdk_home.sh
es la respuesta mucho más limpia, al menos para Ubuntu , ya/etc/profile
está agrupada con tanta lógica. No parece prudente agregarle más ...Ninguna de las otras respuestas fueron "pegando" para mí en RHEL 7, incluso la creación
JAVA_HOME
yPATH
directamente/etc/profile
o~/.bash_profile
no funcionaría. Cada vez que intentaba comprobar siJAVA_HOME
estaba configurado, aparecía en blanco:Lo que tuve que hacer fue configurar un script en
/etc/profile.d/jdk_home.sh
:Inicialmente descuidé la primera línea (la
#!/bin/sh
), y no funcionará sin ella.Ahora funciona:
fuente
Es muy fácil establecer un camino en Linux. Haz lo siguiente:
Paso-1 Abra la terminal y escriba
sudo gedit .bashrc
Paso-2 Te pedirá tu contraseña. Después de escribir la contraseña, se abrirá el archivo bash. Luego ve al final y escribe abajo
paso 3
paso-4 Luego guarda el archivo y sal del archivo
Lo anterior es para un solo usuario. Para todos los usuarios, debe seguir los pasos a continuación.
Paso 1
gedit /etc/profile
Paso 2
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Paso 3
export PATH=$PATH:$JAVA_HOME/bin
Espero que esto ayude. ¡Gracias!
fuente
Haciendo lo que hace Oracle (como ex empleado de Sun no puedo acostumbrarme a eso)
ln -s latestJavaRelease / usr / java / default
Donde latestJavaRelease es la versión que desea utilizar
luego exporte JAVA_HOME = / usr / java / default
fuente
La respuesta que se le da a las publicaciones anteriores es válida. Pero no hay una respuesta completa con respecto a:
Entonces, como se indicó anteriormente, cree el archivo /etc/profile.d/custom.sh para cambios personalizados.
Ahora, para mantenerse siempre actualizado con las nuevas versiones de Java instaladas, nunca coloque la ruta absoluta, en su lugar use:
fuente
Copie la ruta del archivo bin que instaló
abra la terminal y edite el archivo de entorno escribiendo el siguiente comando,
En este archivo, agregue la siguiente línea (reemplazando
YOUR_PATH
por la ruta recién copiada):Eso debería ser suficiente para establecer la variable de entorno. Ahora vuelva a cargar este archivo:
ahora pruébelo ejecutando:
fuente
/usr/lib/jvm/default-java/
En Linux agrego esta línea a mi ~ / .profile:
fuente
Paso 1: verifique la versión actual de Java "echo $ JAVA_HOME"
Paso 2 - vim / etc / profile
Paso 3: al final del archivo, encontrará export JAVA_HOME, necesitamos proporcionar la nueva ruta aquí, asegúrese de que no sea relativa.
Paso 4 - Guardar y salir: wq
Paso 5 - "source / etc / profile /", esto ejecutaría el cambio
Paso 6 - Nuevamente haz un echo $ JAVA_HOME - el cambio se habría reflejado.
fuente
1 ... Usando el atajo
Ctlr
+Alt
+T
para abrir el terminal2 ... Ejecute el siguiente comando:
3 ... (Recomendado) Reinicie su VM / computadora. Puedes usar
source /etc/source
si no desea reiniciar la computadora4 ... Usando el atajo
Ctlr
+Alt
+T
para abrir el terminal5 ... Verificado JAVA_HOME entrega con
Copia de una línea del flob , crédito para ellos
fuente
fuente
Probablemente sea una buena idea obtener el perfil que edite para evitar tener que usar un inicio de sesión nuevo.
ya sea: fuente / etc / o. / etc /
¿Dónde está el perfil que editó?
fuente
Mientras estamos configurando JAVA_HOME, permítanme compartir algunos beneficios de configurar JAVA_HOME o cualquier otra variable de entorno:
1) Es fácil actualizar JDK sin afectar el inicio de su aplicación y el archivo de configuración que apunta a JAVA_HOME. solo necesita descargar una nueva versión y asegurarse de que su JAVA_HOME apunte a una nueva versión de Java. Este es el mejor beneficio de usar variables de entorno o enlaces.
2) La variable JAVA_HOME es corta y concisa en lugar de la ruta completa al directorio de instalación de JDK.
3) La variable JAVA_HOME es la independencia de la plataforma, es decir, si su script de inicio usa JAVA_HOME, puede ejecutarse en Windows y UNIX sin ninguna modificación, solo necesita configurar JAVA_HOME en el sistema operativo respectivo.
Leer más: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
fuente
Este es un script muy simple para resolver el problema.
Y para probar:
fuente
Publicar como respuesta, ya que no tengo el privilegio de comentar.
Punto a tener en cuenta : siga la respuesta aceptada publicada por "That Dave Guy".
Después de configurar las variables, asegúrese de configurar los permisos apropiados para el directorio de Java donde está instalado.
fuente
Todos los pasos operativos (encontrar java, directorio principal, editar archivo, ...) una solución
Resultado:
Explicación:
1) Dividamos el comando completo en pedazos
2) Encuentra la ruta de Java desde el comando de Java
3) Obtener ruta relativa de ruta simbólica
4) Obtener la ruta principal de
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
5) Obtener la ruta principal de
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
fuente
Use SDKMAN sdkman.io para cambiar por cierto. tu sdk's
Establece el JAVA_HOME para ti.
fuente
abra kafka-run-class.sh con sudo para escribir
puede encontrar kafka-run-class.sh en su carpeta kafka : kafka / bin / kafka-run-class.sh
verifica estas líneas
Modifique la variable JAVA en la parte else para apuntar al ejecutable java en su java / bin. como JAVA = "$ JAVA_HOME / java"
fuente
En / etc / profile, si lo abres, sabrás que NO es recomendable escribir en ese archivo. En lugar de eso, haga un script de sus comandos (suponga que test.sh) vaya a la carpeta /etc/profile.d y coloque allí test.sh. Cada vez que reinicie la instancia, / etc / profile lo llamará automáticamente.
fuente
Yo uso la linea:
a mi ~ / .profile para que use la base del directorio predeterminado de java al iniciar sesión. Esto es para bash.
fuente