2009-09-03 19 views
6

Sto provando a iniziare a lavorare con Java, ma finora non sono stato in grado di installarlo correttamente sul mio computer. Mi piacerebbe davvero essere in grado di compilare da riga di comando. Dopo aver seguito le istruzioni here senza errori non riesco a compilare con javac. Ecco quello che ho finora:Ottenere Java JDK per compilare su ubuntu

Quando entro:

$ java -version 

ottengo:

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) 

Quando eseguo:

$ sudo apt-get install sun-java6-jdk 

ottengo:

~$ 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? 

Quando eseguo:

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

ottengo:

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 

Quando cerco di aggiornare (usando sudo apt-get update) ottengo:

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

Qualcun altro ha riscontrato questo problema? Grazie in anticipo ...

+0

Cosa intendi per "non è possibile compilare"? Non riesci a trovare il programma javac? Compilazione degli errori? –

+0

Si è installato il runtime Java. Probabilmente non hai installato gli strumenti di sviluppo (dove risiede il compilatore) –

+1

Sembra, in quel momento, che il particolare mirror che stai usando non possa essere collegato a.Il problema potrebbe essere alle due estremità. Hai provato di nuovo? Sembra decisamente un problema con 'apt-get update'. –

risposta

6

È possibile installare il JDK sulle recenti versioni di Ubuntu digitando il seguente comando:

sudo apt-get install sun-java6-jdk 

si potrebbe trovare questo più facile che tentare di configurarlo manualmente.

+0

ha aggiunto queste informazioni al post originale ... – danwoods

+0

@danwoods: probabilmente non ce l'hai un indice aggiornato. Prova "sudo apt-get update" e poi prova ad installarlo di nuovo. –

+0

Apparentemente il problema è più grande di quanto pensassi. Ho aggiunto i risultati di tale comando al mio post originale – danwoods

1

Di solito si trova java nel PERCORSO e non javac in un'installazione standard di Ubuntu. Questo è principalmente a causa del pacchetto gcj che viene installato. Vengono inoltre creati collegamenti simbolici che possono essere aggiornati utilizzando lo script aggiornamento-alternative.

Dopo l'installazione di Sun JDK, è necessario aggiornare il link simbolico a Java, e questo di solito è fatto tramite un comando simile a quello qui sotto

sudo update-alternatives --config java

Se non sono presenti collegamenti diretti verso la posizione di (Sun) java, è possibile crearlo utilizzando un comando simile a

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

Nel caso di javac, è possibile creare un link simbolico, sempre utilizzando update-alternatives utilizzando:

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

Questo renderà javac disponibile su PATH, proprio come java.

Ovviamente, è possibile aggiornare la variabile PATH tramite una semplice esportazione o tramite modifiche al file di configurazione della shell.

+0

Non credo che questo sia vero nelle ultime versioni di Ubuntu. Installare come detto sopra dovrebbe installare javac e renderlo accessibile senza alcun collegamento simbolico. –

+0

Non l'ho verificato su 9.04. Ma l'ho fatto sulle versioni 6.x-7.x. Probabilmente non su 8.x. Ma ho il più pallido dei ricordi per i problemi di configurazione tra le varie versioni. –

+0

Beh, penso che la 8.04 sia stata la prima versione a includere i file .debs ufficiali. Questi funzionano molto meglio di provare a installare manualmente, come era necessario nelle versioni precedenti. –

5

Prova questo:

  1. scaricare l'SDK Java in $ HOME/archivi (per esempio, $ HOME/archives/jdk-6u16-linux-x64.bin).
  2. Estrarre Java in/opt (o un'altra posizione se non si desidera utilizzare root). Per esempio:

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

  3. Creare un collegamento simbolico (per facilitare gli aggiornamenti):

    sudo ln -s jdk1.6.0_16 JDK

  4. Modifica $ HOME/.bashrc

  5. aggiungere le seguenti righe:

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

  6. Ricarica le variabili di ambiente:

    source $ HOME/.bashrc

ora dovrebbe essere in grado di compilare i programmi.

Preferisco questo metodo per installare il pacchetto gestito perché la disinstallazione (o gli aggiornamenti) non sembra mai rimuovere tutti i bit dell'SDK in modo impeccabile, e sembra ostacolare l'installazione di più versioni del Java Software Development Kit sulla stessa macchina al contemporaneamente. Ho avuto problemi con apt-get e Java in passato. Inoltre, questo metodo mi consente di essere assolutamente certo della versione di Java in uso in qualsiasi momento.

Se non si è sicuri di utilizzare root e /opt, è possibile utilizzare il proprio account e $HOME/bin/jdk invece. Modificare di conseguenza il file .bashrc.

Rimuovere qualsiasi versione di Java precedentemente installata. Potrebbe essere necessario riavviare la sessione del terminale.

Questo funziona per tutte le versioni di Java almeno da Java 1.2.

+1

Questo metodo funziona davvero. Anche se può sembrare troppo complesso. – Dananjaya

+0

Questo è semplicemente ciò che * deve * essere fatto per risolvere tali problemi – diegoaguilar

0

Ho appena incontrato questo problema durante l'installazione del validatore HTML http://validator.nu. Per installare sun-java6-jdk ho dovuto aggiungere questo repository: deb http://archive.canonical.com/ lucid partner

Per completare l'installazione del validatore, ho dovuto impostare (esportazione) il mio $JAVA_HOME-/usr/lib/jvm/java6-sun.

cambiano "lucido" per tutto ciò che è appropriato per la versione di Ubuntu.

Problemi correlati