Java - [solucionado] Como instalar Java de Oracle en Ubuntu y Debian

 
Vista:
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[solucionado] Como instalar Java de Oracle en Ubuntu y Debian

Publicado por xve (345 intervenciones) el 08/07/2016 16:57:13
Aquí voy a explicar a modo de chuleta, los pasos para instalar la versión de Java de Oracle en una distribución de Linux Ubuntu o Debian.

La versión de Ubuntu, es la 16.04, y la versión de Debian, es la 8.
La versión actual de Oracle Java es la: 1.8.0_91


1.- Primeramente hay que saber si nuestro linux es de 32 o 64 bits con la instrucción:
Desde la consola o terminal:
1
file /lib/systemd/systemd
Nos devolvera algo como:
/lib/systemd/systemd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=eb8de17b1570a5bd55aaed95a5cb7d9d009139c5, stripped


2.- Tambien tenemos que saber si tenemos alguna versión de java instalada, y que versión de Java tenemos en nuestra distribución. Para ello, ejecutamos:
1
java -version
En nuestro caso, nos aparece:
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-2~deb8u1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)


NOTA: Si no disponemos de la versión de Java instalada, nos podemos saltar el paso numero 3.

3.- Si disponemos de la versión OpenJDK, la vamos a desistalar.
Como root:
1
apt-get purge openjdk-\*

apt-get-purge-openjdk


4.- Ahora tenemos que descargar la versión de Java desde la página de Oracle:
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Nosotros hemos descargado la versión para 64 bits: jdk-8u91-linux-x64.tar.gz

download-jdk-oracle-webpage-1

download-jdk-oracle-webpage-2


5.- Creamos la carpeta donde descomprimiremos el java:
1
mkdir -p /usr/local/java


6.- Movemos el archivo que hemos descargado a dicha carpeta:
1
mv /home/[NombreUsuario]/Downloads/jdk-8u91-linux-x64.tar.gz /usr/local/java/


7.- Descomprimimos el archivo
1
2
cd /usr/local/java
tar zxvf jdk-8u91-linux-x64.tar.gz


8.- Vamos a añadir en el PATH de la maquina, las rutas del Java. Para ello, editamos el archivo /etc/profile con cualquier editor (nano, vim, ...) como root.
1
nano /etc/profile

Actualmente el archivo es así en Debian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
 
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
 
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
 
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

y tiene que quedar así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
 
JAVA_HOME=/usr/local/java/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
 
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
 
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi


Actualmente el archivo es así en Ubuntu:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
 
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
 
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

y tiene que quedar así:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi
 
if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi

JAVA_HOME=/usr/local/java/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

  done
  unset i
fi

9.- Creamos los enlaces simbolicos, para que cualquier aplicación que necesite utilizas java pueda utilizarlo sin problema:
1
2
3
update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_91/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_91/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_91/bin/javaws" 1


10.- Indicamos que esta versión de java sera la versión por defecto en nuestro sistema:
1
2
3
update-alternatives --set java /usr/local/java/jdk1.8.0_91/bin/java
update-alternatives --set javac /usr/local/java/jdk1.8.0_91/bin/javac
update-alternatives --set javaws /usr/local/java/jdk1.8.0_91/bin/javaws


11.- Recargamos el PATH de nuestra maquina ejecutando (fijarse que hay un espacio en blanco entre el punto y la barra):
1
. /etc/profile


12.- Ya podemos volver a revisar nuestra versión de java:
1
java -version
En nuestro caso, nos aparece:
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)



Espero que os sirva de ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[solucionado] Como instalar Java de Oracle en Ubuntu y Debian

Publicado por juanki (131 intervenciones) el 08/07/2016 20:44:35
Estupenda explicación.

Debería estar siempre arriba!!

Una curiosidad, me pareció leer por algún lado que debido a las disputas con oracle, google estaba ayudando a la comunidad a desarrollar OpenJDK. ¿Es cierto eso?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[solucionado] Como instalar Java de Oracle en Ubuntu y Debian

Publicado por avatar_blue (2 intervenciones) el 09/07/2016 03:20:23
Oracle como todo sabemos es una empresa tipo microsoft (Demandante) que se dé dedicaba al desarrollo de su Db que noy hay que negar que es buena. Pero tiene las mismas ideas que la otra empresa odia el Open Source. Cuando adquirió Sun Microsystem se quedó con grandes proyectos y con el brillante que era Java. Ahora si uno ve atrás de estos años en que ha estado manejando dichos proyectos están casi muertos. Acabo con OpenSolaris, OpenOffice aunque lo donó a la fundación Apache este proyecto está en el olvido.
El motor de base de datos MySQL que era muy popular y ocupado por grandes empresas como Google se está convirtiendo en privativo y a la fecha no ha avanzado nada, pues no le convence mantener un motor distinto al suyo.
Ahora su motor de base de datos está siendo reemplazado por motores de Open Source y no le queda de otra más que aplicar lo de sus patentes y como vio el éxito del So android que tiene nada más el 80% del mercado, está intentando sacar provecho del mismo.
Ya a perdido la batalla contra oracle con respecto a las apis que según ellos demandan.
Por lo que Google a decido ocupar Openjdk para evitarse más líos en futuro con ellos.
El usuario final de android no va a notar casi la diferencia, pero los desarrolladores se deben adaptar al cambio y creo que está versión tendrá mucho más que dar que la original.

Creó que en un futuro no muy lejano Java será desplazado en android por Dart o Go.

Java debe de cambiar de manos de oracle para que evolucione así como lo está haciendo el lenguaje de programación de microsoft c#.

Solo el tiempo nos dirá que pasó con este lenguaje que tantos logros nos dio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[solucionado] Como instalar Java de Oracle en Ubuntu y Debian

Publicado por juanki (131 intervenciones) el 09/07/2016 18:32:24
Hola

Creó que en un futuro no muy lejano Java será desplazado en android por Dart o Go.

Eso sería para mi una gran noticia, puesto que me gusta mucho Dart y cada ratillo libre que tengo se lo dedico. No es que no me guste Java, pero si tengo que escoger....

Siempre tuve la curiosidad de porqué google escogió Java cuando creó Android. Appel acaba de crear Swift, que imagino no lo harían de cero, sino que se basarían en objective-c (supongo, no tengo la menor idea). No sé como una empresa como google, que además ya tiene un par de lenguajes de programación desarrollados, no hace algo similar. Aunque imagino también que crear desde cero la enorme API de Android en otro lenguaje será una labor titáncia.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

[solucionado] Como instalar Java de Oracle en Ubuntu y Debian

Publicado por avatar_blue (1 intervención) el 09/07/2016 23:48:05
Hola

Para responder a tus preguntas de porque google eligió java para android es que funcionaba en muchos móviles y era el lenguaje más popular en su momento y quiso aprovechar la jvm lo cual lo ayudaba a ejecutar el código fácilmente.
Java en su momento era lo que había, y parecía la única manera de sobrevivir contra iOS.
La ventaja de android junto jvm es que se instalaba en cualquier dispositivo y las app eran universales para todos ellos.

Ahora Swift es un lenguaje rápido y eficiente que proporciona información en tiempo real y puede incorporarse fácilmente al código de Objective-C existente.

Google tiene fijado como objetivo desplazar a java en android con un nuevo lenguaje de programación, este sería Dart, y llegaría con diferentes ventajas. En general, ofrecería un mejor rendimiento, una mayor fluidez, y la posibilidad de poder funcionar a 120 frames por segundo, algo que sin duda muy destacable. Pero también habría que hablar de la posibilidad de que las aplicaciones se ejecuten en la Nube, algo que nos permite Dart con relativa facilidad. Al final el objetivo de Google es acabar con ese lag presente en Android desde que se lanzó y cuya diferencia con iOS solo se consigue salvar multiplicando por cuatro los núcleos del procesador: 8 o 10 núcleos en smartphones Android.

Dart es relativamente un lenguaje nuevo y tardará en convertirse en un lenguaje tan utilizado como Java, aunque ya se ha lanzado una aplicación de ejemplo, por lo que podríamos ir viendo con el paso del tiempo una mayor importancia para este nuevo lenguaje, que irá sustituyendo a Java de manera gradual, al estilo de Swift con Objective-C en el caso de Apple.

Un poco de información:

https://www.geektopia.es/es/technology/2013/11/07/articulos/google-comienza-a-probar-publicamente-art-una-nueva-maquina-virtual-de-java-para-android.html

http://www.elandroidelibre.com/2013/11/art-la-nueva-maquina-virtual-de-google-que-sustituira-a-dalvik.html


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar