2011-01-02 27 views
5

Intentando instalar Java (JDK 6) en mi nuevo sistema Ubuntu y obteniendo algunos errores bizarros. Esta es la primera vez que uso cualquier versión de de Linux, por lo que estoy seguro de que es un problema del usuario (permisos u otros).Problemas de instalación de Java en Ubuntu

He descargado el archivo BIN directamente desde el sitio de Oracle (Java SE 6u23 para Linux de 64 bits). De manera predeterminada, se descargó a/home/myUserName/Descargas.

A partir de ahí moví el archivo a/opt/java, que era un directorio que creé, porque (como un principiante de Linux) que tenía sentido ser el directorio al que debería ir Java.

Entonces me encontré con los 2 comandos siguientes, según las instrucciones que encontré en línea de las bandejas de servicio:

chmod +x jdk-6u23-linux-x64.bin 
sudo ./jdk-6u23-linux-x64.bin 

Ahora, en mi directorio/opt/java veo tanto el archivo BIN y el jdk1.6.0_23 directorio que parece estar intacto durante la inspección.

Pero, al abrir una nueva terminal y ejecute java -version , me sale:

El programa 'java' se pueden encontrar en los siguientes paquetes:
- gcj-4,4-jre -headless
- gcj-4,5-jre-headless
- OpenJDK-6-jre-headless
Probar: sudo apt-get install

¿Qué está pasando aquí?!?

(1) ¿Estaba equivocado al tratar de crear/opt/java mi directorio Java?
(2) ¿Ejecuté los comandos incorrectos?
(3) ¿Está instalado Java 1.6.0_23 incluso en mi máquina?
(4) ¿Cuáles son todos esos objetivos gcj-xxx-headless?!?!

¡Gracias por cualquier entrada!

Respuesta

6

Por qué la descarga de un contenedor, cuando se puede simplemente:

sudo apt-get install sun-java6-jdk 

Si no hay ninguna razón especial por qué te gustaría que versión específica desde el sitio, debe utilizar apt-get, ya que se ocúpese de todas las cosas como la variable PATH, etc.

+0

Para un usuario 'normal' tienen razón, pero como desarrollador de Java a veces necesita una versión muy específica para probar su software, como Java 6 actualización 20, o 23, etc. –

+2

@arjan: Como desarrollador de Java, nunca necesité nada más específico que la versión de capital número. Aunque, debo decir que principalmente desarrollé webapps, y siempre usando el conjunto común más bajo de características de idioma. –

+0

Normalmente, en las aplicaciones web que desarrolla para su propia empresa, el servidor de destino contiene una versión de Java muy específica. Para excluir errores tontos de cambios menores entre las versiones de JDK, normalmente usamos en nuestras estaciones de desarrollo exactamente la misma versión que en nuestro servidor. Por supuesto, actualizamos con mucha frecuencia la versión de Java del servidor, por lo que esta convención no nos obliga a estar atascados en versiones anteriores de Java. –

1

Simplemente ha puesto los binarios JDK en un directorio. Aunque por convención/opt/java o/opt/jdk se usa a menudo, estos no son directorios que el sistema reconoce automáticamente.

Sin embargo, puede actualizar su variable de entorno PATH para incluir el directorio/opt/java/bin, o el enlace simbólico (ln -s)/opt/java/bin/java en uno de los directorios de su sistema que se incluyen en su ruta como/usr/bin/

+0

Agradezco la opinión de todos: voy a intentar alejarme del uso de apt-get porque me gusta saber cómo funcionan las cosas, incluso si tengo que ir por 3 lados del establo y se necesita más tiempo/esfuerzo. Después de descomprimir el tarball, me queda ese directorio ** jdk1.6.0_23 ** en/opt/java. Ahora estoy intentando configurar manualmente la variable PATH abriendo .bashrc y agregando ** PATH =/opt/java/jdk1.6.0_23/bin ** a la última línea. Hacerlo resulta con * java -version * dando salida correctamente, pero luego pierdo todas mis herramientas de terminal como ls, cd, dir, clear, etc; los estados de error usr/bin no están en PATH. ¿Qué hacer? – Zac

+0

Esta es una pregunta de Unix realmente básica (que en realidad no es muy diferente de cómo funciona en Windows), pero debe incluir su ruta anterior: path = new path + old path. Para más detalles, será mejor que abras una nueva pregunta si es necesario. –

7

¿Estaba equivocado al tratar de crear/opt/java mi directorio Java?

Realmente no. Muchos desarrolladores de Java instalan varias instalaciones JDK y siempre usan /opt/jdk1.6.0_23 o rutas similares.El archivo bin que ha descargado no es un instalador , sino simplemente un extractor. No instala los binarios java en carpetas del sistema como /bin.

Normalmente descargo el JDK y lo ejecuto desde mi carpeta de inicio y luego lo muevo a/opt y realizando un chown.

¿He ejecutado los comandos incorrectos?

Realmente no. En caso de que desee instalar un JDK por separado, lo hizo correctamente. En caso de que desee la integración del sistema, sería mejor utilizar los paquetes específicos de la distribución, como el que está instalado a través del aptitude install sun-java6-jdk o similar.

El bin que ha descargado es mucho más flexible, ya que puedo usarlo para instalar múltiples veriones de Java en el mismo sistema. Sé que esto es algo que no haces a menudo en máquinas Linux.

Si desea utilizar el java binario en la línea de comandos, debe configurar manualmente las variables de entorno PATH y JAVA_HOME. Creo que en Ubuntu eso es/etc/environment o/etc/profile o algo así.

¿Está instalado el Java 1.6.0_23 en mi máquina?

Realmente no. Ver respuestas anteriores.

¿Qué son todos esos objetivos gcj-xxx-headless?!?

El GCJ es el compilador de Gnu para Java. Obviamente, incluye un Java Development Kit y un Java Runtime Environment.

+1

Excelente respuesta, pero un pequeño comentario: el archivo bin realmente hace un poco más que extraer, ya que también genera algunas cosas. –

1

El JDK que instaló desde Sun/Oracle es el JDK original. El JDK "sin cabeza" es la alternativa de fuente abierta. Cuando ejecuta el archivo JDK BIN, simplemente extrae el archivo. Cuando ingresó el comando java -version, encontró el FOSS Java, no el Java que había extraído en/opt. Como alguien más había mencionado, los desarrolladores conservan múltiples versiones del JDK. Si desea utilizar el Java de Oracle, necesita el enlace/usr/bin/java a /opt/jdk1.6.0_23/bin/java.

sudo ln -s /usr/bin/java /opt/jdk1.6.0_23/bin/java 

Para que esto funcione, el comando java existente debía desvincularse de la primera JDK "sin cabeza". (Haga lo siguiente antes de que el comando anterior.)

sudo mv /usr/bin/java /usr/bin/java_old 

Esto supone que existe un vínculo o java llamado ejecutable en/usr/bin. Usa el comando which para estar seguro.

which java 
0

Para añadir una nueva ruta de acceso a la variable PATH existente, tiene que escribir esto en la Terminal:

PATH=`echo $path`:/your/new/path 
export PATH

Si había perdido la variable PATH original, podría restaurar mediante la introducción de esto:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 
export PATH
0

Probar:

rm -rf /usr/bin/javac 
rm -rf /usr/bin/jar 

ln -s /home/jdk1.6.0_13/bin/javac /usr/bin/javac 
ln -s /home/jdk1.6.0_13/bin/jar /usr/bin/jar 

esta manera, su Linux puede encontrar java & & javac en /usr/bin

+0

[enlace] (http://fengbin2005.iteye.com/blog/1222849) http://fengbin2005.iteye.com/blog/1222849 – kkmike999

1

Por favor, siga los siguientes pasos para instalar Java de Oracle:

Descargar la última versión Java SE SDK.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Descomprimir el Archivo:

tar -xzvf jdk-8-linux-x64.tar.gz 
mv jdk1.8.0 /opt 
cd /opt/jdk1.8.0 

Este paso registra la versión descargada de Java como una alternativa, y lo cambia para ser utilizado como el valor por defecto:

update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1 
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1 
update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 1 
update-alternatives --set java /opt/jdk1.8.0/bin/java 
update-alternatives --set javac /opt/jdk1.8.0/bin/javac 
update-alternatives --set mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 

Prueba

Para comprobar la versión de Java que ahora está ejecutando

java -version 

salida

java version "1.8.0" 
Java(TM) SE Runtime Environment (build 1.8.0-b132) 
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) 

Para comprobar el navegar navegador plugin para http://www.java.com/ y haga clic en “¿Tengo Java?”

Ref: https://askubuntu.com/questions/437776/ubuntu-13-04-unable-to-install-jdk7

Cuestiones relacionadas