2009-09-03 15 views
6

Estoy tratando de empezar a trabajar con Java, pero hasta ahora no he podido conseguirlo en mi máquina correctamente. Me gustaría poder compilar desde línea de comandos. Después de seguir las instrucciones here sin errores, no puedo compilar con javac. Esto es lo que tengo hasta ahora:Obtención de Java JDK para compilar en ubuntu

Cuando entro:

$ java -version 

me sale:

java version "1.6.0_16" 
Java(TM) SE Runtime Environment (build 1.6.0_16-b01) 
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode) 

Cuando corro:

$ sudo apt-get install sun-java6-jdk 

me sale:

~$ sudo apt-get install sun-java6-jdk 
Reading package lists... Done 
Building dependency tree   
Reading state information... Done 
Suggested packages: 
    sun-java6-demo sun-java6-doc sun-java6-source 
The following NEW packages will be installed: 
    sun-java6-jdk 
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded. 
Need to get 17.4MB of archives. 
After this operation, 55.7MB of additional disk space will be used. 
WARNING: The following packages cannot be authenticated! 
    sun-java6-jdk 
Install these packages without verification [y/N]? y 
Err http://us.archive.ubuntu.com hardy-updates/multiverse sun-java6-jdk 6-07-3ubuntu2 
404 Not Found [IP: 91.189.88.140 80] 
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java6/sun-java6-jdk_6-07-3ubuntu2_i386.deb 404 Not Found [IP: 91.189.88.140 80] 
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 

Cuando corro:

$ /media/disk/School/java/hw1$ javac HelloWorldApp,java </pre> 

me sale:

The program 'javac' can be found in the following packages: 
* java-gcj-compat-dev 
* openjdk-6-jdk 
* gcj-4.2 
* kaffe 
* ecj 
* jikes-sun 
* jikes-sablevm 
* j2sdk1.4 
* jikes-classpath 
* jikes-gij 
* gcj-4.1 
* sun-java5-jdk 
* jikes-kaffe 
* sun-java6-jdk 
Try: sudo apt-get install <selected package> 
bash: javac: command not found 

Cuando intento actualizar (usando sudo apt-get update) me sale:

E: The method driver /usr/lib/apt/methods/https could not be found. 

Alguien más ha encontrado con este problema? Gracias por adelantado ...

+0

¿Qué quiere decir con "no se puede compilar"? No se puede encontrar el programa javac? Errores de compilación? –

+0

Tiene instalado el tiempo de ejecución de Java. Probablemente no tenga las herramientas de desarrollo instaladas (donde vive el compilador) –

+1

Parece que, en ese momento, el espejo particular que está utilizando no se pudo conectar.El problema podría ser en cualquier extremo. ¿Lo intentaste de nuevo? Definitivamente parece un problema con la 'actualización de apt-get'. –

Respuesta

6

Puede instalar el JDK en las últimas versiones de Ubuntu escribiendo este comando:

sudo apt-get install sun-java6-jdk 

Usted puede encontrar esto más fácil que intentar configurarlo manualmente.

+0

agregó esta información a la publicación original ... – danwoods

+0

@danwoods: es probable que no tenga un índice actualizado. Pruebe "sudo apt-get update" y luego intente instalar nuevamente. –

+0

Aparentemente el problema es más grande de lo que pensaba. Agregué los resultados de ese comando a mi publicación original – danwoods

1

Por lo general, se encuentra java en el camino y no JavaC en una instalación estándar de Ubuntu. Esto se debe principalmente al paquete gcj que se instala. También se crean los enlaces simbólicos que se pueden actualizar por medio de las alternativas de actualización script.

Después de una instalación de JDK de Sun, que están obligados a actualizar el enlace a Java, y esto generalmente se hace a través de un comando similar a la de abajo

sudo update-alternatives --config java

Si los enlaces duros a la ubicación de (Sun) java no están presentes, puede crearlos usando un comando similar a

sudo update-alternatives --install/usr/bin/java java/usr/lib/jvm/jdk1. 6.0_07/jre/bin/java 300

En el caso de javac, puede crear un enlace simbólico, de nuevo utilizando alternativas de actualización utilizando:

sudo update-alternatives --install/usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_07/ bin/javac 300

Esto hará que javac esté disponible en PATH, al igual que java.

Por supuesto, no hay posibilidad de actualizar la variable PATH a través de un simple exportación o a través de cambios en el archivo de configuración de concha.

+0

No creo que esto sea cierto en las últimas versiones de Ubuntu. Instalando como menciono arriba debería instalar javac y hacer que esté accesible sin ningún enlace simbólico. –

+0

No lo he verificado el 9.04. Pero he hecho esto en las versiones 6.x-7.x. Probablemente no en 8.x. Pero tengo la menor cantidad de recuerdos para problemas de configuración en todas las versiones. –

+0

Bueno, creo que 8.04 fue la primera versión en incluir sun .debs oficiales. Funcionan mucho mejor que tratar de instalarse manualmente, como era necesario en versiones anteriores. –

5

Prueba esto:

  1. Descargar el SDK Java en $ HOME/archivos (por ejemplo, $ HOME/archivos/jdk-6u16-linux-x64.bin).
  2. Extraiga Java en/opt (u otra ubicación si no desea usar la raíz). Por ejemplo:

    cd/opt
    chmod 755 $ HOME/archivos/jdk-6u16-linux-x64.bin
    sudo $ HOME/archivos/jdk-6u16-linux-x64.bin

  3. Crear un enlace simbólico (a facilitar las actualizaciones):

    sudo ln -s jdk1.6.0_16 JDK

  4. Editar $ HOME/.bashrc

  5. anexar los siguientes líneas:

    JAVA_HOME =/opt/JDK
    PATH = $ PATH: $ JAVA_HOME/bin

  6. Actualizar las variables de entorno:

    fuente $ HOME/.bashrc

Ahora debería ser capaz de compilar programas.

Prefiero este método para instalar el paquete administrado porque la desinstalación (o actualizaciones) nunca parece eliminar todos los bits del SDK sin problemas, y parece dificultar la instalación de varias versiones del Kit de desarrollo de software Java en la misma máquina en el Mismo tiempo. He tenido problemas con apt-get y Java en el pasado. Además, este método me permite estar absolutamente seguro de qué versión de Java está en uso en cualquier momento.

Si no se siente cómodo usando root y /opt, puede usar su propia cuenta y $HOME/bin/jdk. Cambie el archivo .bashrc según corresponda.

Elimine cualquier versión de Java que haya instalado previamente. Es posible que deba reiniciar su sesión de terminal.

Esto funciona para todas las versiones de Java desde al menos Java 1.2.

+1

Este método realmente funciona. Aunque puede parecer demasiado complejo. – Dananjaya

+0

Esto es simplemente lo que * debe * hacerse para solucionar tales problemas – diegoaguilar

0

Acabo de toparme con este problema al instalar el validador html de http://validator.nu. Para instalar sun-java6-jdk he tenido que añadir este repositorio: deb http://archive.canonical.com/ lucid partner

Para completar el validador de instalar, tuve que ajustar (exportación) mi $JAVA_HOME-/usr/lib/jvm/java6-sun.

Cambie "lúcido" a lo que sea apropiado para su edición de Ubuntu.

Cuestiones relacionadas