<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> <TITLE> HOWTO Java su Linux: Note su Problemi Noti</TITLE> <LINK HREF="Java-HOWTO-8.html" REL=next> <LINK HREF="Java-HOWTO-6.html" REL=previous> <LINK HREF="Java-HOWTO.html#toc7" REL=contents> </HEAD> <BODY> <A HREF="Java-HOWTO-8.html">Avanti</A> <A HREF="Java-HOWTO-6.html">Indietro</A> <A HREF="Java-HOWTO.html#toc7">Indice</A> <HR> <H2><A NAME="s7">7.</A> <A HREF="Java-HOWTO.html#toc7">Note su Problemi Noti</A></H2> <H2><A NAME="ss7.1">7.1</A> <A HREF="Java-HOWTO.html#toc7.1">Il Make di GNU non funziona più dopo l'installazione di Java.</A> </H2> <P>Versioni recenti di libc correggono un baco che nascondeva un errore in GNU Make (il sintomo è che make non cerca più le regole in Makefile). Le note alla release 5.2.8 di libc contengono un patch che corregge il problema.</P> <H2><A NAME="classpath"></A> <A NAME="ss7.2">7.2</A> <A HREF="Java-HOWTO.html#toc7.2">Errore: too many arguments'</A> </H2> <P>La variabile CLASSPATH non è correttamente inizializzata. In .java_wrapper, c'è del codice simile a questo:</P> <P> <BLOCKQUOTE><CODE> <PRE> PRG=`which $0` J_HOME=`dirname $PRG`/.. </PRE> </CODE></BLOCKQUOTE> </P> <P>Sfortunatamente, il comando 'which' di linux è scorretto, e certe shell impostano $0 all'intero pathname. Randy Chapman dice di corregerlo sia usando:</P> <P> <BLOCKQUOTE><CODE> <PRE> J_HOME=`dirname $0`/.. </PRE> </CODE></BLOCKQUOTE> </P> <P>che, in modo più sicuro:</P> <P> <BLOCKQUOTE><CODE> <PRE> J_HOME=/usr/local/java </PRE> </CODE></BLOCKQUOTE> </P> <P>Una correzione alternativa da Dave Dittrich è:</P> <P> <BLOCKQUOTE><CODE> <PRE> PRG=`csh -c "which $0"` </PRE> </CODE></BLOCKQUOTE> </P> <P>E un'altra da Tim Farnum è di cambiare la riga <CODE>PRG=`which $0`</CODE> con: <BLOCKQUOTE><CODE> <PRE> PRG=$0 </PRE> </CODE></BLOCKQUOTE> </P> <P>Lutz Behnke suggerisce:</P> <P> <BLOCKQUOTE><CODE> <PRE> PRG=`type -path $0` >/dev/null 2>&1 </PRE> </CODE></BLOCKQUOTE> </P> <P>Un simile cambiamento deve essere fatto anche nello script appletviewer.</P> <H2><A NAME="ss7.3">7.3</A> <A HREF="Java-HOWTO.html#toc7.3">Errore: `cannot find class java/lang/Thread'</A> </H2> <P>La variabile CLASSPATH non è correttamente inizializzata. Vedi <A HREF="#classpath">sopra</A>.</P> <H2><A NAME="ss7.4">7.4</A> <A HREF="Java-HOWTO.html#toc7.4">Un messaggio di errore si riferisce a /dev/zero</A> </H2> <P>Da root eseguite <CODE>chmod 666 /dev/zero</CODE>.</P> <H2><A NAME="ss7.5">7.5</A> <A HREF="Java-HOWTO.html#toc7.5">SEGFAULT</A> </H2> <P>Occasionalmente potreste trovarvi con lo schermo pieno di messaggi d'errore, e il sistema riempie allegramente la vostra area di swap e si blocca.</P> <P>Probabilmente vi manca una libreria da qualche parte. Rilanciate ldconfig -v e guardate cosa manca. Forse LD_LIBRARY_PATH o CLASS_PATH non sono impostate. Infine, alcuni applet sono bacati o bloccano il JDK Linux.</P> <P>(Ad ogni modo, potete fermare il blocco usando un'altra Xterm con top; usate top per killare il processo java prima che riempia la swap e che il sistema si blocchi!)</P> <P>Java sembra richiedere un mucchio di risorse, così dovreste tenere il numero di applicazioni aperte nel desktop al minimo. Su un 486DX2/75 con 8MB di RAM e 16MB di swap sono in grado di lanciare due applet di animazione simultaneamente prima che il mio sistema riempia la swap e si impicchi. (ci mette un minuto, comunque).</P> <H2><A NAME="ss7.6">7.6</A> <A HREF="Java-HOWTO.html#toc7.6">bin/java, bin/javac, o bin/appletviewer vi danno un messaggio di help</A> </H2> <P>avete dimenticato qualche parametro su una riga di comando.</P> <H2><A NAME="ss7.7">7.7</A> <A HREF="Java-HOWTO.html#toc7.7">Gli applet sono visibili nel viewer, ma non sul web.</A> </H2> <P>Un errore comune che produce questo risultato consiste nello sbagliare il tipo MIME dell'applet. Il vostro server deve inviare un header con l'applet indicante che il tipo MIME è 'text/plain', 'application/octet-stream', o qualche altro tipo che non ha un gestore definito sul lato client. Come correggere questo dipende da quale server state usando. (John Franks)</P> <P>E' stato inoltre riferito che tinyhttpd, un HTTP server scritto in Perl, fornisce un errato tipo di contenuto. Apache, invece, è piuttosto affidabile.</P> <H2><A NAME="ss7.8">7.8</A> <A HREF="Java-HOWTO.html#toc7.8">Log dei problemi</A> </H2> <P>Joey Oravec ci dice che HotJava tiene traccia di ciò che fa e dei problemi che incontra. Se cercate di diagnosticare qualcosa da voi, guardate in $HOME/.hotjava/weblog. Quel file vi farà notare se forse vi manca una libreria o altro.</P> <HR> <A HREF="Java-HOWTO-8.html">Avanti</A> <A HREF="Java-HOWTO-6.html">Indietro</A> <A HREF="Java-HOWTO.html#toc7">Indice</A> </BODY> </HTML>