PDA

Visualizza la versione completa : Java su Debian: programmi non partono


alkat
23-06-2006, 09:00
Ciao,
ho installato su Debian Testing il pacchetto Java Sun prendendolo direttamente dai repository Debian Unstable, sembra però ci sia qualcosa che non funziona. Ogni volta che tento di avviare un programma, mi dà questa serie di errori:




$ java -jar Arachnophilia.jar
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvir onment(libgcj.so.7)
at java.awt.Window.<init>(libgcj.so.7)
at java.awt.Frame.<init>(libgcj.so.7)
at javax.swing.JFrame.<init>(libgcj.so.7)
at Arachnophilia.Arachnophilia.<init>(Arachnophilia.java:93)
at Arachnophilia.Arachnophilia.main(Arachnophilia.jav a:1490)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit
at java.lang.Class.forName(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7)
...6 more



Pensavo mancasse la libreria libgcj ma l'ho installata (da Unstable). Qualcuno sa cos'altro potrebbe essere?

Ale.

iox84
23-06-2006, 09:23
Controlla, tramite comando "echo" se la variabile d'ambiente $JAVA_HOME è settata correttamente e se il path della tua jvm è stato aggiunto nella variabile $PATH

alkat
23-06-2006, 09:30
non ho capito... puoi tradurre? :)

non so cosa dovrei fare con echo...

iox84
23-06-2006, 09:37
Premessa:
Con $JAVA_HOME si indica di solito il percorso assoluto che punta alla cartella di installazione del pacchetto java.

Il comando echo serve per stampare a video da shell, con questo comando si possono anche interrogare le variabili d'ambiente. Ora JVM per funzionare correttamente ha bisogno di due cose:
- Avere settato correttamente la variabile d'ambiente $JAVA_HOME
- Avere il suo path aggiunto nel $PATH di sistema (scusate gli strafalcioni tecnici)
Quindi il comando


echo $JAVA_HOME

Stamperà il contenuto della variabile d'ambiente $JAVA_HOME (se è settata), devi quindi controllare che punti correttamente alla cartella di installazione del pacchetto java
Mentre il comando


echo $PATH

Stamperà il contenuto del path, in questo caso devi controllare se è stato aggiunto (in teoria in fondo) il percorso assoluto che punta a $JAVA_HOME/bin

alkat
23-06-2006, 09:44
Dottore, è grave:



ale@debian:~$ echo $JAVA_HOME

ale@debian:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games


Direi che non è configurata... la domanda a questo punto sorge spontanea: come si configura?

E per fortuna che quetso è il pacchetto distribuito da Debian... quando me lo creavo io il pacchetto .deb (http://www.debian-administration.org/articles/142) funzionava tranquillamente...

iox84
23-06-2006, 09:50
:master: adesso che ci penso :master:
Sulla mia vecchia fedora le variabili d'ambiente non erano settate, mi sto basando su slackware che ho installato il pacchetto a mano (dal sito java)
:master: puoi provare ad eseguire un'altro jar?

alkat
23-06-2006, 10:09
Originariamente inviato da iox84
:master: adesso che ci penso :master:
Sulla mia vecchia fedora le variabili d'ambiente non erano settate, mi sto basando su slackware che ho installato il pacchetto a mano (dal sito java)
:master: puoi provare ad eseguire un'altro jar?

ho già provato con diversi programmi e il risultato è sempre lo stesso...

iox84
23-06-2006, 10:26
Allora prova a esportare le variabili d'ambiente in questa maniera:


export JAVA_HOME = /path/alla/tua/cartella/java
export PATH = /path/alla/tua/cartella/java/bin:$PATH

Questi comandi valgono solo per la shell attuale, quindi se riavvii le devi esportare di nuovo, comunque prima prova così poi semmai le setti ad ogni avvio.
Il path deve puntare alla cartella bin della JVM e non del JDK in caso avessi installato il pacchetto per lo sviluppo software. Di solito la cartella della jvm è una sottocartella della $JAVA_HOME (in caso avessi installato il pacchetto per lo sviluppo)

Ho riguardato gli errori e, in quanto (scarso) programmatore java, credo ti manchi una libreria, ti da un problema awt e le awt parlano direttamente con le librerie (grafiche) di sistema, sicuro di aver installato le gtk sulla tua macchina?

alkat
23-06-2006, 10:30
Originariamente inviato da iox84
Allora prova a esportare le variabili d'ambiente in questa maniera:


export JAVA_HOME = /path/alla/tua/cartella/java
export PATH = /path/alla/tua/cartella/java/bin:$PATH

Questi comandi valgono solo per la shell attuale, quindi se riavvii le devi esportare di nuovo, comunque prima prova così poi semmai le setti ad ogni avvio.
Il path deve puntare alla cartella bin della JVM e non del JDK in caso avessi installato il pacchetto per lo sviluppo software. Di solito la cartella della jvm è una sottocartella della $JAVA_HOME (in caso avessi installato il pacchetto per lo sviluppo)

Ho riguardato gli errori e, in quanto (scarso) programmatore java, credo ti manchi una libreria, ti da un problema awt e le awt parlano direttamente con le librerie (grafiche) di sistema, sicuro di aver installato le gtk sulla tua macchina?

sicuro, sicuro no... ma usando Gnome immagino ci siano. O sono forse altre librerie?

iox84
23-06-2006, 10:39
Mi pare che gnome non usi le gtk, ne usa delle altre, kde dovrebbe usare le gtk.
prova a fare:


apt-cache search gtk


Oppure aspettiamo qualche guru

Loading