Java fue desarrollado por Sun (hoy propiedad de Oracle) allá por 1992, y surgió a partir de la necesidad de crear una plataforma que permitiera el desarrollo de código fuente universal. La idea era desarrollar aplicaciones que pudieran ser creadas en cualquier sistema operativo que cuente con soporte para Java y luego ser ejecutadas en cualquier otro sin necesidad de modificaciones, lo cual en la jerga era conocido como WORA («write once run anywhere», o «escribir una vez, ejecutar en cualquier lado»).
Así es como Java llegó a los sistemas operativos más importantes como Windows, Mac OS X (en aquel momento, MacOS) y como no Linux. En este caso claro, con llegada a muchas distros, aunque no todos los sistemas de paquetes lo incorporan en forma amigable u ofrecen las versiones más nuevas. Y en algunos casos bastantes notorios como el de Ubuntu, hay que dar unas cuantas vueltas para instalar tanto el runtime de Java como su SDK si así lo preferimos (o necesitamos para comenzar a desarrollar código).
Ahora vamos a ver cómo instalar Java en Ubuntu, algo que no es del todo complicado aunque si requiere de algunos pasos que conviene tener bien claros, sobre todo porque además en la actualidad tenemos la posibilidad de instalar tanto la versión de Java de Oracle -es decir la oficial- como OpenJDK, que es desarrollada por la comunidad y que comenzó como una apuesta a futuro cuando no estaba claro cual sería el rol de Java en cuanto a su actitud con el software libre.
La compatibilidad entre ambos es del 99,9 por ciento, pero personalmente creo que para una formación que nos facilite las cosas si queremos trabajar en la empresa es conveniente adaptarnos lo más que podamos a las herramientas oficiales. Por ejemplo, en el caso de Java es más útil aprender a utilizar Netbeans o Eclipse y usar el Java de Oracle. Así pues, lo primero es comprobar si al instalar nuestra distro esta vino con OpenJDK:
java -version
El sistema nos devolverá la información de la versión de Java que tenemos instalada, por ejemplo algo como ‘OpenJDK Runtime Environment’ si es que tenemos la versión de OpenJDK. Si ese fuese el caso, la podemos desinstalar mediante:
sudo apt-get purge openjdk-\*
Ahora tenemos la completa seguridad de haber eliminado todo lo relacionado con la instalación anterior de Java, para comenzar con una limpia. El primer paso es crear las carpetas o directorios en los cuales vamos a instalar la nueva versión, y esto es bien simple:
sudo mkdir -p /usr/local/java
Después tenemos que descargar el SDK de Java prestando especial atención a que sea la que corresponde con nuestro sistema, es decir 32 o 64 bits, ya que por ejemplo Java para 64 bits no funcionará correctamente en sistemas de 32 bits y nos dará errores de todo tipo. La descarga la copiamos a la carpeta que nos creamos en el paso anterior, mediante:
cp jdk-8-linux-x64.tar.gz /usr/local/java
Después nos posicionamos en ese directorio y la descomprimimos:
tar -xvf jdk-8-linux-x64.tar.gz
Con ese comando comienza a descomprimirse la descarga de Java, y quedará dentro de la carpeta que creamos anteriormente, algo como /usr/local/java/jdk8, y dentro de ella todas las subcarpetas que forman parte del archivo comprimido que hemos descargado.
Vamos bien, y ya falta poco pero todavía nos resta un paso importante y es el de lograr que el sistema identifique los comandos de Java para que podamos ejecutarlos sin necesidad de ingresar toda la ruta hacia ellos sino simplemente escribiendo un comando determinado, como java, o javac. Esto, se llama ‘añadir al path’ y es bastante simple de hacer ya que tenemos que modificar los contenidos del archivo /etc/profile. Para ello utilizamos un editor de texto de nuestra preferencia, en mi caso Gedit:
sudo gedit /etc/profile
y añadimos lo siguiente:
JAVA_HOME=/usr/local/java/jdk8
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
Guardamos los cambios, y ahora nos resta añadir esta instalación de Java a la base de datos de nuestro sistema, lo cual hacemos mediante el comando update-alternatives.
Con este comando le informamos al sistema que Oracle Java JRE, JDK y Java Webstart están disponibles:
sudo update-alternatives –install «/usr/bin/java» «java» «/usr/local/java/jdk8/bin/java» 1
sudo update-alternatives –install «/usr/bin/javac» «javac» «/usr/local/java/jdk8/bin/javac» 1
sudo update-alternatives –install «/usr/bin/javaws» «javaws» «/usr/local/java/jdk8/bin/javaws» 1
Ahora vamos a establecer a Oracle Java como el runtime predeterminado del sistema:
sudo update-alternatives –set java /usr/local/java/jdk8/bin/java
sudo update-alternatives –set javac /usr/local/java/jdk8/bin/javac
sudo update-alternatives –set javaws /usr/local/java/jdk8/bin/javaws
Eso es todo, hemos finalizado con la instalación, y podemos comprobarlo con sólo ejecutar el comando inicial nuevamente y verificar lo que ahorra nos arroja:
java -version,
Tal como veremos, ya estaremos ejecutando el runtime de Oracle Java actualizado a su versión más nueva.
Más información – Ubuntu podría tener el mejor navegador del mundo y suyo, Netbeans en Ubuntu, Cómo instalar un IDE en nuestro Ubuntu(I)
se me hace mas sencillo instalarlo de esta forma http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html
Todo esto para instalar Java,y luego pretendéis que la gente se pase del windows xp a linux,por favor…..Es una quimera,en todo caso aumentaran las licencias de windows 7,Me parece que este año tampoco va a ser el año de Linux……
A fantástica noticia como parangón del software libre y las grandes opciones del código abierto y mas quimeras….PARECE SER QUE CANONICAL ESTA BAJANDO DE LA NUBE…….
Canonical cierra Ubuntu One por no poder competir con la guerra de precios de servicios en la nube
Jaumet, está claro que el procedimiento es algo tedioso pero instalar algunas herramientas de desarrollo en Windows tampoco es una tarea trivial (por ejemplo las herramientas para desarrollo Android).
Rodrigo, en ocasiones he instalado Java de esa manera, pero en este caso he buscado una solución más definitiva. Y es que si algún día ese PPA deja de ser mantenido o actualizado ahí te quedas, mientras que en este procedimiento que detallamos sólo hay que actualizar el directorio en el que instalamos Java con una nueva versión, y dado que la estructura del JDK es siempre la misma los enlaces simbólicos y las entradas en el PATH estarán siempre correctas, sin importar si tenemos Java 8, Java 8.1, Java 9 o lo que sea.
Saludos!
yo lo he intentado, pero con el primer comando update-install, la terminal se queda como tonta, puedo seguir metiendo comandos que no hace nada, no se si habrá que esperar un tiempo o no, pero al final, me he vuelto al openjdk, que no va mal
Dani, que raro eso que me comentas
podrías decirme la salida del comando
sudo /usr/sbin/update-alternatives –config java
Saludos!
Amigo todo iba bien. Pero cuando escribo estos comandos
sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/local/java/jdk8/bin/javac” 1
sudo update-alternatives –install “/usr/bin/javaws” “javaws” “/usr/local/java/jdk8/bin/javaws” 1
error: el enlace alternativo no es absoluto como debería ser: “/usr/bin/javac”
Solo este sudo update-alternatives –install “/usr/bin/java” “java” “/usr/local/java/jdk8/bin/java” 1 no me da error.
Y cuando escribo java -version . me sale esto
java version «1.8.0_05»
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
No se si se instalo bien. porque al escribir en la consola javac no lo reconoce.
Agradecería tu ayuda.
antes del install no va un solo guión si no tal que si — install
Buenas noches, solo un consejo ya que intente seguir este tutorial pero creo que falta mas explicacion aparte de que algunos comandos estan mal escritos y marcan muchos errores tal como el problema del comentario de arriba
En que parte del documento en gdit debo añadir esto?
JAVA_HOME=/usr/local/java/jdk8
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
Tengo un problema, soy novato y seguí al pie de la letra el tutorial de como instalar java, pero al momento de pedir que extraiga el contenido de «jdk-8u31-linux-x64.tar.gz» alojada en la carpeta creada, me dice que operación no permitida y no me deja extraer. ¿Que puedo hacer?
Hola a todos amigos hoy mismo me hice usuario Linux Mint y me tope con este problema ya que necesito usar el Java 8
y siguiendo estos pasos me tope con los mismos problemas que ustedes.
y yo ya lo solucione solo son errores de sintaxis si necesitan ayuda agreguenme a Skype nebneru85@hotmail.com y les soluciono el problema saludos
Con vuestro permiso: aquí vamos «resucitando» entradas y verificando qué tan vigentes están hoy día martes 06 de diciembre de 2016 (en este punto si vosotros NO estáis interesado en esto HACED CLICK en otro enlace o cerrad esta pestaña de vuestro navegador web),
Y COMENZAMOS:
Desinstalamos introduciendo nuestra contraseña de ‘root’:
sudo apt-get purge openjdk-\*
El enlace para descargar jdk-8-linux-x64.tar.gz (revisad vuestro tipo de procesador y distro GNULinux, nos usamos Ubuntu16 64 bits):
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
*** Al dia de hoy 2016-12dic-06 en realidad el paquete tiene el nombre jdk-8u111-linux-x64.tar.gz ***
Para copiar el archivo comprimido descargado y extraer su contenido hay que anteceder el comando «sudo» antes de cada linea de lo aquí indicado en este tutorial (en nuestro caso usamos Ubuntu16 de 64 bits ojo):
sudo cp jdk-8u111-linux-x64.tar.gz /usr/local/java/
sudo cp jdk-8u111-linux-x64.tar.gz /usr/local/java/
sudo tar -xvf jdk-8u111-linux-x64.tar.gz
Al ejecutar el comando anterior es creada la carpeta «/usr/local/java/jdk1.8.0_111», en este momento si ingresamos «java -version» en la línea de comandos nos indica amablemente a instalarlo con «sudo apt install» por lo que debemos indicarle a nuestro sistema operativo DONDE ESTÁ INSTALADO modificando el ‘profile’:
gksudo gedit /etc/profile
OBSERVESE que utilizamos «gksudo» porque vamos a usar gedit que utiliza una interfaz gráfica, NOSOTROS GENERALMENTE USAMOS «nano» y la orden sería «sudo nano /etc/profile» PERO USAD EL EDITOR DE TEXTO QUE VOSOTROS QUERÁIS eso sí SI el editor de texto seleccionado tiene interfaz gráfica utilizad «gksudo».
AGREGAMOS las líneas indicadas en este tutorial:
JAVA_HOME=/usr/local/java/jdk8
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
(no dejar tabuladores ni espacios en nuestro archivo /etc/profile, agregad al final del archivo).
Luego utilizamos update-alternativas para redirigir nuestra distro GNULinux (obervad el uso de comillas simples, el uso DE DOS GUIONES en –install y la variación en la ruta por nuestra versión paquetes jdk1.8.0_111 -en vuestro ordenador tal vez sea diferente-):
sudo update-alternatives –install ‘/usr/bin/java’ ‘java’ ‘/usr/local/java/jdk1.8.0_111/bin/java’ 1
sudo update-alternatives –install ‘/usr/bin/javac’ ‘javac’ ‘/usr/local/java/jdk1.8.0_111/bin/javac’ 1
sudo update-alternatives –install ‘/usr/bin/javaws’ ‘javaws’ ‘/usr/local/java/jdk1.8.0_111/bin/javaws’ 1
Ahora vamos a establecer a Oracle Java como el runtime predeterminado del sistema (de nuevo observad el uso de doble guion en –set y -de nuevo- nuestra ruta puede ser distinta de vuestra ruta en vuestro ordenador):
sudo update-alternatives –set java /usr/local/java/jdk1.8.0_111/bin/java
sudo update-alternatives –set javac /usr/local/java/jdk1.8.0_111/bin/javac
sudo update-alternatives –set javaws /usr/local/java/jdk1.8.0_111/bin/javaws
POR ÚLTIMO VERIFICAMOS DE NUEVO NUESTRA VERSIÓN INSTALADA (os devolverá algo parecido a esto -dependiendiendo de vuestra versión distro GNULinux):
jimmy@KEVIN:/usr/local/java/jdk1.8.0_111$ java -version
java version «1.8.0_111»
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
jimmy@KEVIN:/usr/local/java/jdk1.8.0_111$
ESPERO LES SEA ÚTIL EL TRABAJO DE ESTE VUESTRO HUMILDE SERVIDOR, gracias por permitirme publicar nuestras experiencias y así compartimos conocimiento libre #SoftwareLibre 😎 , atte. Jimmy Olano.
el hecho de «copiar» de estos comandos y pegarlos en el terminal, era lo que me daba error, ademas de el doble guion en *–install* que era necesario, y que la ruta de java no era la correcta, les recomiendo escribirla paso a paso