  HOWTO Java su Linux
  a cura di Eric S. Raymond, <esr@snark.thyrsus.com>
  <fpolacco@megabaud.fi>
  ver.1.0 21 Aprile 1996 (v.2.2, 10 February 1996)

  Questo documento descrive come prendere il via con Java e HotJava su
  Linux, sia come utente che come programmatore.
  ______________________________________________________________________

  Indice Generale


  1. Introduzione
  2. Domende Generiche su Java e HotJava
     2.1 Cosa sono Java e HotJava e perch sono interessanti?
     2.2 Da dove provengono Java e HotJava? Chi pu utilizzarli?
     2.3 Quanto  maturo Java?
     2.4 Dove posso trovare documentazione su Java e HotJava?
     2.5 S, ma dove trovo documentazione cartacea?
     2.6 Esiste materiale in Italiano su Java?
     2.7 Dove posso trovare sulla rete collezioni di codice Java?

  3. Java come Software Liberamente Ridistribuibile
     3.1 I programmi Java e gli applet sono liberamente ridistribuibili?
     3.2 Cosa posso fare con gli eseguibili dell'implementazione di Java?
     3.3 Che parti dei sorgenti di Java sono liberamente ridistribuibili?
     3.4 Qual' l'atteggiamento della Sun nei confronti di strumenti ed   implementazioni FRS di Java?
     3.5 C' qualcuno che sta clonando Java in sorgenti liberamente       ridistribuibili?
     3.6 Esistono attrezzi FRS per Java?

  4. Java su Linux. Domande.
     4.1 Java e HotJava sono inclusi in qualche distribuzione di Linux?
     4.2 Come posso avere la pi recente distribuzione di Java per Linux?
     4.3 Di che ambiente avr bisogno per far girare Java?
     4.4 Ho bisogno di Netscape? Posso usare Netscape?
     4.5 Quali mailing list o newsgroup esistono per Java su Linux?

  5. Costruiamo lo sbarco di Java su Linux.
     5.1 Distribuzione Slackware ELF kernel 1.2.13.
     5.2 RedHat 2.1/Caldera Preview 2
     5.3 Unifix

  6. Visualizzare gli Applet
  7. Note su Problemi Noti
     7.1 Il Make di GNU non funziona pi dopo l'installazione di Java.
     7.2 Errore: too many arguments'
     7.3 Errore: `cannot find class java/lang/Thread'
     7.4 Un messaggio di errore si riferisce a /dev/zero
     7.5 SEGFAULT
     7.6 bin/java, bin/javac, o bin/appletviewer vi danno un messaggio di help
     7.7 Gli applet sono visibili nel viewer, ma non sul web.
     7.8 Log dei problemi

  8. Correlazioni
  9. Da Aggiungere ...
  10. Ringraziamenti


  ______________________________________________________________________

  11..  IInnttrroodduuzziioonnee

  Questo documento  una introduzione al mondo di Java e HotJava
  incentrata su Linux.  Queste tecnologie sono in rapida eoluzione, e
  accettiamo contribuzioni da chiunque.

  Parti di questo documento che hanno seriamente bisogno di verifica o
  di completamento sono racchiuse da *** ***.  Vedi inoltre pi sotto la
  sezione ``Da Aggiungere ...''.  Per favore aiutateci a migliorare
  questo HOWTO.

  Inviate aggiornamenti e richieste di modifiche a Eric S. Raymond.

  Aggiornamenti specifici alla versione Italiana possono essere inviati
  a Fabrizio Polacco <mailto:fpolacco@megabaud.fi>.

  22..  DDoommeennddee GGeenneerriicchhee ssuu JJaavvaa ee HHoottJJaavvaa

  Questa sezione  una introduzione generica (non specifica su Linux) a
  Java e HotJava.


  22..11..  CCoossaa ssoonnoo JJaavvaa ee HHoottJJaavvaa ee ppeerrcchh ssoonnoo iinntteerreessssaannttii??

  Java  un linguaggio conscio della rete, che ricorda superficialmente
  il C++, ma molto pi piccolo e pi compatto e progettato in modo pi
  pulito.  E` un linguaggio a raggio illimitato dotato di garbage
  collection (raccolta dei rifiuti) come il Lisp, ma con il controllo
  statico sui tipi ( stato correttamente descritto come uno 'Smalltalk
  con una corretta sintassi').  Comprende gli thread (processi leggeri)
  come una capacit nativa ed ha potenti caratteristiche per la
  sicurezza della rete.

  HotJava  un browser per il WWW scritto in Java.  Il suo maggiore
  vantaggio sugli altri browser  dato dal suo essere a conoscenza di un
  nuovo costrutto HTML chiamato un APPLET,che consiste in qualche classe
  Java che viene eseguita sulla macchina cliente.  Perci, documenti WWW
  scritti pensando a Java possono incorporare oggetti-codice 'vivi',
  invece di solo dati.

  La capacit di mandare in giro intatti oggetti-codice rappresenta
  probabilmente il pi significativo avanzamento nella tecnologia WWW
  fin dal primo rilascio di Mosaic.  Come minimo, fornisce un browser
  Web che non necessita di perpetui aggiornamenti per gestire nuovi
  formati di immagine e nuovi tipi di tag.

  Java viene compilato in uno pseudo-codice chiamato `J-code'; gli
  interpreti Java eseguono J-code.  Lo J-code corre il rischio di
  diventare un codice-macchina virtuale universale indipendente
  dall'architettura o un linguaggio intermedio di compilazione.  Vi sono
  voci che un compilatore ADA-95 che genera J-code sia gi stato
  costruito e che un compilatore C sia in fase avanzata; eventualmente,
   verosimile che linguaggi a facciata multipla saranno disponibili per
  scrivere, su una qualunque macchina dotata di interprete Java, sia
  applet che programmi completi.

  22..22..  DDaa ddoovvee pprroovveennggoonnoo JJaavvaa ee HHoottJJaavvaa?? CChhii ppuu uuttiilliizzzzaarrllii??

  Java e HotJava sono stati sviluppati presso la Sun Microsystems da un
  team diretto da James Gosling (ben noto come progettista di Gosling
  Emacs e di NeWS).

  L'ultima volta che la Sun ha provato ad imporre uno standard tecnico
  consistente  stato con NeWS, il suo Network Window System (Sistema di
  Finestre in Rete). Bench NeWS fosse quasi universalmente considerato
  tecnicamente superiore a X, X vinse perch i suoi sorgenti erano
  liberamente ridistribuibili.  La Sun ha imparato da questo errore, e
  ha reso Java e HotJava molto pi generalmente disponibili; i sorgenti
  possono essere recuperati sotto una licenza piuttosto rilassata (vedi
  ``Java come Software Liberamente Ridistribuibile'').  La Sun sta
  incoraggiando sbarchi in ambienti non-Sun.

  Netscape ora interpreta Java. La Microsoft ha preso la licenza della
  tecnologia nel Dicembre 1995. Cos sembra che il supporto per Java
  probabilmente diverr universale nel 1996.

  Java era stato chiamato Oak. HotJava era noto come WebRunner.

  22..33..  QQuuaannttoo  mmaattuurroo JJaavvaa??

  Il 12 Dicembre 1995 la Sun ha rilasciato la versione ''Beta 2'' di
  Java. Un mese pi tardi ha rilasciato la 1.0, la prima versione di
  `produzione'. La API (l'interfaccia di programmazione) dell'ambiente
  Java che definiscono l'accesso al Sistema Operativo dell'host ed al
  sistema di visualizzazione (windowing)  stata dichiaratamente semi-
  congelata; pu venire estesa, ma non sar modificata in modo
  incompatibile.

  La versione 1.0 di questo FAQ  stata pubblicata con la beta 1.0 del
  kit per sviluppatori Java (JDK) per Linux, portatovi da Randy Chapman.

  Si sa che esistono buchi significativi nell'implementazione della
  sicurezza di Java. Non  ancora una buona idea quella di usare Java
  per applicazioni delicate. Si attendono soluzioni per questi problemi
  nelle release in produzione dopo la beta.

  22..44..  DDoovvee ppoossssoo ttrroovvaarree ddooccuummeennttaazziioonnee ssuu JJaavvaa ee HHoottJJaavvaa??

  La Sun mantiene un esteso web HTML di documenti relativi a Java e
  HotJava su  <http://java.sun.com>.  Questi documenti sono replicati su
  <http://java.blackdown.com> ed altrove; vedi la lista della Sun dei
  siti speculari.

  22..55..  SS,, mmaa ddoovvee ttrroovvoo ddooccuummeennttaazziioonnee ccaarrttaacceeaa??

  La serie ufficiale di libri su Java della SunSoft Press  in fase di
  realizzazione alla Addison-Wesley.  Dettagli su questi si possono
  trovare nel FAQ del newsgroup comp.lang.java <http://www.city-
  net.com/~krom/java-faq.html>.

  Parecchi utilizzatori di Java della prima ora hanno raccomandato era
  un commento.

  O'Reilly & Associates sta preparando la sua serie di libri su Java in
  cooperazione con la Sun.  Sar incluso (almeno) una ''Nutshell Guide
  To Java'' (Guida a Java in un guscio di noce: Le guide in un guscio di
  noce sono una serie di manuali UNIX di gran successo della OR&A. NdT),
  un manuale di riferimento al linguaggio, un manuale di riferimento
  alla libreria di classi, e un libro sulla macchina virtuale a byte-
  code.  _(_F_u_l_l_-_d_i_s_c_l_o_s_u_r_e _s_t_a_t_e_m_e_n_t_: _Y_o_u_r _H_O_W_T_O _e_d_i_t_o_r _h_a_s _b_e_e_n _i_n_v_i_t_e_d
  _b_y _O_'_R_e_i_l_l_y _A_s_s_o_c_i_a_t_e_s _t_o _s_e_r_v_e _a_s _p_r_i_m_a_r_y _t_e_c_h_n_i_c_a_l _r_e_v_i_e_w_e_r _f_o_r _t_h_i_s
  _s_e_r_i_e_s_, _a_n_d _i_s _b_e_i_n_g _p_a_i_d _f_o_r _t_h_a_t _w_o_r_k_._)  (Il curatore dell'HOWTO
  avverte di essere pagato dalla O'Reilly & Associates in qualit di
  principale revisore tecnico.)

  SAMS ha un libro chiamato ''Learning Java in 21 Days'' (Imparare Java
  in 21 giorni).  Non ho ancora recensioni.

  Uno dei nostri contributori, spulciando un catalogo locale, ha trovato
  3 libri gi pubblicati:


    Uno chiamato 'Java in 60 minuti' che appare come una descrizione
     sintattica piuttosto condensata.

    Uno da SamsNet chiamato proprio 'Java'.


    Uno di Tim Ritchey chiamato 'Java!' che include un CD-ROM.

  Il nostro informatore continua:

       Ho comprato il terzo (quello di Tim Richey). Il CD-ROM con
       tiene roba dalla versione alfa, bench suggerisca che la
       versione beta dovrebbe essere pronta in quei tempi, ed
       indica java.sun.com come un buon posto dove trovare infor
       mazioni pi recenti. A parte questo,  piuttosto buono,
       anche nel far notare che _b_e_n_e_, _ _f_u_o_r_i _l_u_o_g_o _p_e_r _m_e _r_i_e_m_
       _p_i_r_v_i _d_i _p_a_g_i_n_e _e _p_a_g_i_n_e _d_i _d_e_s_c_r_i_z_i_o_n_e _d_e_l_l_a _A_P_I _p_e_r_c_h_ _1_)
       _q_u_a_d_r_u_p_l_i_c_h_e_r_e_b_b_e _l_e _d_i_m_e_n_s_i_o_n_i _d_e_l _l_i_b_r_o _e _2_) _v_e_n_g_o_n_o _c_o_n_
       _t_i_n_u_a_m_e_n_t_e _m_o_d_i_f_i_c_a_t_e _e _3_) _p_o_t_e_t_e _t_r_o_v_a_r_e _q_u_e_s_t_e _i_n_f_o_r_
       _m_a_z_i_o_n_i _o_n_-_l_i_n_e _._._. _e_c_c_.


  Dave Dittrich scrive:

       direi che 'Java in 60 minutes' potr anche essere letto in
       60 minuti, ma non vi insegner a programmare in Java in 60
       minuti (sorpresa, sorpresa!). Mi sembra che ''Java in 60
       minuti'' sia solo uno dei molti concorrenti alla corsa per
       essere per primi in libreria con un libro sull'argomento del
       momento. Non sembra di avere pi di quanto si possa trovare
       sul Web, compreso un sacco di testo che sembra proprio
       tirato fuori dal Java Language Specification
       (http://java.sun.com/JDK-beta2/psfiles/javaspec.ps).


  Continua Dave:

       lo stesso per ''Java!'', solo che quest'ultimo entra molto
       pi nei dettagli sui concetti della programmazione orientata
       agli oggetti, ecc. Qualcuno mi ha consigliato un'altro testo
       che ugualmente parla di astrazione di dati/metodi ed altri
       concetti della programmazione orientata agli oggetti, che 
       di Abelson, Sussman e Sussman (MIT Press).


  Nota finale: a tutt'oggi (Gennaio 1996),  probabilmente una buona
  idea stare lontani dal libro di Ritchey e su ogni altra cosa basata
  sulla API alfa. La Api beta  sostanzialmente diversa, e la Java 1.0
  in fase di realizzazione avr le sue differenze.

  22..66..  EEssiissttee mmaatteerriiaallee iinn IIttaalliiaannoo ssuu JJaavvaa??

  Non ho notizia di libri o riviste originali italiani , mentre so di
  diverse traduzioni di libri americani:


    di Tittel e Gaither, IDG 1995.


  NOTA:  _P_o_i_c_h_ _i_l _v_o_s_t_r_o _t_r_a_d_u_t_t_o_r_e _n_o_n _v_i_v_e _i_n _I_t_a_l_i_a_, _h_a _o_v_v_i_e
  _d_i_f_f_i_c_o_l_t_ _a _r_e_c_a_r_s_i _i_n _l_i_b_r_e_r_i_a _p_e_r _r_e_p_e_r_i_r_e _i_n_f_o_r_m_a_z_i_o_n_i _d_i _p_r_i_m_a
  _m_a_n_o_. _I_n _q_u_e_s_t_o _h_a _e_s_t_r_e_m_o _b_i_s_o_g_n_o _d_i _a_i_u_t_o _d_a _p_a_r_t_e _v_o_s_t_r_a_: _s_o_n_o _b_e_n
  _a_c_c_e_t_t_i _e_l_e_n_c_h_i _d_i _l_i_b_r_i_, _r_i_v_i_s_t_e _e _r_e_c_e_n_s_i_o_n_i_.  _C_o_n_t_a_t_t_a_t_e
  _l_i_b_e_r_a_m_e_n_t_e _F_a_b_r_i_z_i_o _P_o_l_a_c_c_o _<mailto:fpolacco@megabaud.fi>.


  22..77..  DDoovvee ppoossssoo ttrroovvaarree ssuullllaa rreettee ccoolllleezziioonnii ddii ccooddiiccee JJaavvaa??

  Archivi WWW di applet sono disponibili nelle seguenti locazioni:

    <http://java.sun.com/>

    <http://www.applets.com/>

    <http://www.gamelan.com/>

    <http://www.javasoft.com/applets/applets.html>

     Per molti degli applet in queste pagine  disponibile il codice
     sorgente, ed i programmatori sono invitati ad usarli.

  Altri pagine verranno segnalate nel FAQ del newsgroup comp.lang.java
  <http://www.city-net.com/~krom/java-faq.html>.

  33..  JJaavvaa ccoommee SSooffttwwaarree LLiibbeerraammeennttee RRiiddiissttrriibbuuiibbiillee

  Molti programmatori Linux sono impegnati nel produrre software
  liberamente ridistribuibile (FRS), e cercano di evitare di dedicare un
  mucchio di tempo a strumenti i cui sorgenti non siano generalmente
  disponibili.  In questa sezione discutiamo il rapporto tra la Sun e
  Java ed il mondo FRS.

  (Attenzione: non sono un avvocato. Non sono neppure impiegato, n
  agente, n distributore della Sun Microsystems. Questa sezione 
  basata sulla mia interpretazione delle attuali leggi sul copyright ed
  il linguaggio della licenza della Sun. Tenetela come una introduzione;
  la licenza della Sun, <http://www.blackdown.org/Java/licensing.html>,
   definitiva. Se avete seri dubbi sul suo significato, consultate un
  avvocato.)


  33..11..  II pprrooggrraammmmii JJaavvaa ee ggllii aapppplleett ssoonnoo lliibbeerraammeennttee rriiddiissttrriibbuuiibbiillii??

  Lo sono se li scrivete voi e scegliete di renderli FRS attraverso
  qualche metodo (quale la licenza GPL, o una tipo-BSD, o dichiarandoli
  di pubblico dominio).


  33..22..  CCoossaa ppoossssoo ffaarree ccoonn ggllii eesseegguuiibbiillii ddeellll''iimmpplleemmeennttaazziioonnee ddii JJaavvaa??

  La pagina della licenza della Sun ha questo da dire:


       Gli eseguibili binari non-modificati di Java e HotJava
       rilasciati possono essere ridistribuiti senza oneri sia in
       applicazioni commerciali che non-commerciali.


  Inoltre:

       Societ o individui che desiderino creare un nuovo sbarco
       del linguaggio Java in base a codesto contratto hanno il
       diritto di pubblicare su Internet gli eseguibili binari di
       questo sbarco per farli usare da altri, purch questi
       eseguibili siano liberi da oneri e superino le suite di test
       pubblicamente disponibili.  (Le suite di test saranno
       disponibili in qualche momento nella prima met del 1996.)
       Le differenze -- con i sorgenti rilasciati (NdT) -- potranno
       essere pubblicate sul Web puch il codice sorgente originale
       non venga pubblicato.  Il codice sorgente di Java  ...


  Cos se avete gli ese guibili funzionanti di Java o HotJava, potete
  darli ai vostri amici. O metterli in un CD-ROM. O qualunque altra cosa
  eccetto modificarli e chiamare ancora Java la versione modificata.
  (Questo  ragionevole. La Sun ovviamente non vuole restare senza
  risorse contro ''Cavalli di Troia'' che viaggino sotto la bandiera di
  Java.) Gli eseguibili binari sono FRS.
  33..33..  CChhee ppaarrttii ddeeii ssoorrggeennttii ddii JJaavvaa ssoonnoo lliibbeerraammeennttee rriiddiissttrriibbuuiibbiillii??

  In base alla licenza della Sun, nulla di questi lo .  Ma ci suona
  pi severo di quanto sia. In pratica, ogniuno pu ottenere i sorgenti
  di Java e HotJava per scopi educativi, di sbarco, e non-commerciali
  compilando una form sul Web che obbliga a non ridistribuire i
  sorgenti. Ed il contratto _p_e_r_m_e_t_t_e la ridistribuzione di differenze
  sui sorgenti.

  La sola circostanza che vi richiede di firmare una licenza commerciale
  con la Sun e di pagar loro denaro  se volete usare i sorgenti in un
  prodotto commerciale.  In particolare, per il modo in cui  scritto, 
  nella lettera e nello spirito del contratto che voi firmiate la
  licenza dei sorgenti della Sun per uso non-commerciale, arraffiate il
  sorgente, lo sbarchiate altrove e diate via gli eseguibili binari
  ottenuti come freeware completamente libero da ipoteche!

  La Sun dice che il suo scopo primario nel mentenere tanto controllo
  quanto ne ha,  per impedire che il linguaggio muti in dialetti
  incompatibili. Il linguaggio della licenza lo sostiene: sembra essere
  stata progettata per permettere agli smanettoni di giocarci
  liberamente.

  33..44..  QQuuaall'' ll''aatttteeggggiiaammeennttoo ddeellllaa SSuunn nneeii ccoonnffrroonnttii ddii ssttrruummeennttii eedd
  iimmpplleemmeennttaazziioonnii FFRRSS ddii JJaavvaa??

  La pagina della licenza Sun dice:

       Le specifiche per il Linguaggio Java w la Macchina Virtuale
       Java sono aperte (_O_P_E_N) e sono coperte da copyright dalla
       Sun Microsystems Inc.



       Reimplementazioni del Compilatore java e dell'Interprete a
       Runtime di Java sono permesse senza necessit di licenza
       dalla Sun a patto che tali implementazioni siano create
       direttamente dalle specifiche pubblicate e senza l'uso
       diretto o indiretto dell'implementazione  della Sun o altri
       diritti di propriet intellettuale, inclusi i marchi commer
       ciali.


  Cos se volete fare lo sforzo di creare un clone FRS di Java partendo
  dalle specifiche pubblicate , la Sun non vi fermer.

  La gente alla Sun usa il termine ''rogue port'' (sbarco briccone) per
  implementazioni di Java che a) siano eseguite fuori dalla Sun, o b)
  non si basino su codice concesso in licenza dalla Sun (alcune volte il
  termine sembra avere uno dei significati, altre volte l'altro).  Loro
  sembrano ritenere che gi ne esistano, ma noi non sappiamo dove siano,
  n se siano FRS.  Sono piuttosto tranquilli sulla situazione.

  La Sun ha una suite di validazione. Hanno detto che certificheranno
  qualunque sbarco che la superi.(non  noto se questa validazione sar
  onerosa, ma la Sun dice per iscritto che la suite sar che non sar
  onerosa.) Sono pronti a certificare sbarchi bricconi, bench
  apparentemente questo non sia ancora successo.

  33..55..  CC'' qquuaallccuunnoo cchhee ssttaa cclloonnaannddoo JJaavvaa iinn ssoorrggeennttii lliibbeerraammeennttee
  rriiddiissttrriibbuuiibbiillii??

  Esiste un clone del compilatore di Java in fase iniziale di sviluppo.
  E` chiamato guavac. Potete trovare pi informazioni a
  <http://http.cs.berkeley.edu/~engberg/guavac>

  Circolavano voci che il progetto GROW della Cygnus Software avesse
  piani per un interprete del byte-code Java da porre sotto GPL. Questo
   falso; quello su cui stanno lavorando  un traslatore da Java a
  Scheme che non passi attraverso il J-code. Potete avere dettagli sul
  progetto GROW a <http://www.cygnus.com/tiemann/grow/>.

  EriK Troan della Red Hat ed il vostro umile redattore stanno cercando
  di mettere insieme un gruppo di sviluppo per fare il resto del lavoro.
  Per il momento sembra che useremo guavac come compilatore, Erik
  preparer la libreria di classi mentre il vostro umile redattore
  preparer l'interprete di byte-code (se Cygnus non arriver prima).
  Questo progetto era sperimentalmente denominato Everyone = Java Aperto
  a Tutti).


  33..66..  EEssiissttoonnoo aattttrreezzzzii FFRRSS ppeerr JJaavvaa??

  C' una modalit GNU Emacs per editare Java. Potete ottenerlo da
  <ftp://java.sun.com/pub/java/contrib/emacs>.  Notate: questa modalit
  presume stiate usando c++mode.el, e non funziona con cc-mode.el
  distribuito con Emacs 19.

  44..  JJaavvaa ssuu LLiinnuuxx.. DDoommaannddee..

  Qui troverete la parte pratica di come far girare Java sul vostro
  Linux.


  44..11..  JJaavvaa ee HHoottJJaavvaa ssoonnoo iinncclluussii iinn qquuaallcchhee ddiissttrriibbuuzziioonnee ddii LLiinnuuxx??

  No, non ancora, ma aspettatevelo da un momento all'altro.

  44..22..  CCoommee ppoossssoo aavveerree llaa ppii rreecceennttee ddiissttrriibbuuzziioonnee ddii JJaavvaa ppeerr LLiinnuuxx??

  Guardate in  <ftp://java.blackdown.org/pub/Java/linux>.  Il pi
  recente Java-per-Linux pu essere scaricato da l.  Prima dovreste
  dare una scorsa a <ftp://java.blackdown.org/pub/Java/linux/README>.

  I file di cui avrete bisogno sono linux.jdk-1.0-try1.common.tar.gz e
  uno tra linux.jdk-1.0-try3.static-motif-bin.tar.gz o
  linux.jdk-1.0-try3.shared-motif-bin.tar.gz, in base al fatto se avete
  le librerie shared di Motif sul vostro sistema.

  Se avete il Linux di Red Hat o qualche altro sistema che parli RPM,
  potete installare la beta 1.0 da
  <ftp://java.blackdown.org//pub/Linux/RPMS/i386/JDK-linux-
  common-1.0b-1.i386.rpm> e
  <ftp://java.blackdown.org//pub/Linux/RPMS/i386/JDK-linux-
  static-1.0b-1.i386.rpm> o
  <ftp://java.blackdown.org//pub/Linux/RPMS/i386/JDK-linux-
  shared-1.0b-1.i386.rpm>.

  Per gli Europei, il contenuto di
  ftp://java.blackdown.org/pub/Java/linux e
  ftp://java.blackdown.org/pub/Linux/RPMS/i386/JDK-linux* sono ora
  copiati nel Regno Unito in <ftp://ftp.linux.org.uk/pub/linux/java>.
  Che  zen.btc.uwe.ac.uk, in caso a qualcuno interessi.  La copiatura
  avviene quotidianamente alle 6 del mattino (UT).

  NdT: sarebbe necessario riportare qui i link a siti italiani o pi
  vicini (network wise) ai vari provider italiani.  Se ne siete a
  conoscenza potete riferirlo al traduttore .

  Questo sbarco su Linux realizzato da Randy Chapman dai sorgenti Sun, 
  quello a cui facciamo riferimento in questo HOWTO come il JDK.

  44..33..  DDii cchhee aammbbiieennttee aavvrr bbiissooggnnoo ppeerr ffaarr ggiirraarree JJaavvaa??

  Di base, avete bisogno di un Linux basato su ELF.  Non c' supporto
  a.out, e, data la velocit con cui il mondo Linux sta passando a ELF,
  non ce ne sar alcuno in futuro.

  Avete bisogno del kernel 1.2.13 o successivo. Il kernel 1.2.12 e
  precedenti sembra abbiano un baco in getcwd(3) che ingabbia bin/javac
  perch non controlla il valore ritornato da getcwd(3).

  Avrete bisogno di questi pezzi:

    libc.so.5 => /lib/libc.so.5.2.18

    libX11.so.6 => /usr/X11/lib/libX11.so.6.0

    libXt.so.6 => /usr/X11/lib/libXt.so.6.0

    libXext.so.6 => /usr/X11/lib/libXext.so.6.0

    libXpm.so.4 => /usr/X11/lib/libXpm.so.4.3

    libdl.so.1 => /lib/libdl.so.1.7.9

     Le Librerie di supporto C e X potrebbero gi trovarsi nel vostro
     Linux.

  Se non le avete, prelevate libc.5.2.18.bin.tar.gz da
  <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/>.  Scompattate e copiate
  i file dal sottodirettorio lib del pi alto livello della gerarchia in
  /lib.

  Se non avete una versione attuale di ld.so (o libdl.so.1.7.*)  dovrete
  aggiornarla. ld.so.1.7.9 e .11 funzionano: la .10 e altre versioni
  precedenti no.  Prelevate ld-so.1.7.14.tar.gz da
  <ftp://ftp.ods.com/linux/>; Scompattate ed eseguite _i_n_s_t_l_d_s_o_._s_h che si
  trova nel pi alto livello della gerarchia originata.

  Troverete una Libreria Xpm funzionante in
  <ftp://sunsite.unc.edu/pub/Linux/libs/X/libXpm.3.4f-ELF.tar.gz>.

  44..44..  HHoo bbiissooggnnoo ddii NNeettssccaappee?? PPoossssoo uussaarree NNeettssccaappee??

  S, hai bisogno di Netscape. HotJava non  ancora disponibile per la
  release beta 1.0. Randy Chapman dice:

       La Sun ha cambiato massicciamente l'interfaccia awt quando
       ha varato la beta JDK e non ha ancora convertito HotJava a
       ci.  Hanno promesso di farlo, e dovrebbe andare alla grande
       con Linux-JDK quando lo rilasceranno.


  Non  noto quando ci avverr.

  Le versioni di Netscape a partire dalla 2.0b3 sono pronte per Java.
  La trovate su ftp[1-7].netscape.com ( cio ftp1.netscape.com,
  ftp2.netscape.com, ecc) La versione 2.0b4 vi permette di caricare gli
  applet con la URL file:, la 2.0b3 no. Questo dovrebbe essere molto
  d'aiuto ai ragazzi con macchine con poca memoria (perch non serve far
  girare httpd).  La versione attuale  la 0.6.

  Il file da prelevare  /2.0beta6/unix/netscape-v20b6a-
  export.i486-unknown-linux.tar.Z.

  Notate che Netscape gira su un sistema a.out, cosi sarebbe, in teoria,
  possibile scrivere la vostra applicazione (o applet) Java, passarla a
  qualcun altro per la compilazione (come forse il Compilatore Pubblico
  Blackstar <http://mars.blackstar.com>), e vedere l'output sul vostro
  sistema.  Se volete di pi, procuratevi un sistema ELF.

  Assicuratevi che CLASSPATH _n_o_n sia impostato prima di lanciare
  Netscape; sembra faccia cadere Netscape.

  Netscape per Linux ha un p di problemi noti. Non esegue suoni.  Solo
  i display a 8-bit funzionano; 16bpp falliscono.  La versione 2.0b3
  occasionalmente produce un bus-error quando richiama il metodo dispose
  per i frame.  Bench sia altrimenti piuttosto robusto, l'applet
  'Impressionism' di Gamelan  noto farlo fallire.

  44..55..  QQuuaallii mmaaiilliinngg lliisstt oo nneewwssggrroouupp eessiissttoonnoo ppeerr JJaavvaa ssuu LLiinnuuxx??


    _j_a_v_a_-_l_i_n_u_x (a cura di karl@blackdown.org) Discussione e sviluppo
     concernenti lo sbarco di Java sul sistema operativo Linux.  Per
     essere aggiunti alla lista, mandate e-mail a java-linux-
     request@java.blackdown.org con la parola 'subscribe' nel subject.

    _j_a_v_a_-_l_i_n_u_x_-_a_n_n_o_u_n_c_e (a cura di karl@blackdown.org) Lista moderata
     per annunci riguardanti i progetti di sbarco di Java-Linux.  Per
     essere aggiunti alla lista, mandate e-mail a java-linux-announce-
     request@java.blackdown.org con la parola 'subscribe' nel subject.

    comp.lang.java Newsgroup di discussione generale su Java.

    alt.www.hotjava Newsgroup di discussione sul browser HotJava.

  55..  CCoossttrruuiiaammoo lloo ssbbaarrccoo ddii JJaavvaa ssuu LLiinnuuxx..

  In questa sezione, raccogliamo ricette inviateci su come montare lo
  sbarco di Java creato da Randy Chapman su diverse attuali
  distribuzioni di Linux:


  55..11..  DDiissttrriibbuuzziioonnee SSllaacckkwwaarree EELLFF kkeerrnneell 11..22..1133..

  John Franks <john@math.nwu.edu> scrive che vi  riuscito con i
  seguenti passi:


    Prelevate linux-x86.jdk.static-motif.tar.gz da
     <ftp://www.blackdown.org/pub/Java/linux/> decomprimetelo e
     scompattatelo.

    Prelevate libc.5.2.18.bin.tar.gz (distributione in binario, non
     sorgente) da <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/>
     Scompattate e copiate i file dal sottodirettorio lib del pi alto
     livello della gerarchia in /lib.  Assicuratevi che /lib/libc.so.5
     sia un link simbolico a questo file.

    Prelevate ld-so.1.7.14.tar.gz da <ftp://ftp.ods.com/linux/>;
     Scompattate ed eseguite _i_n_s_t_l_d_s_o_._s_h che si trova nel pi alto
     livello della gerarchia originata.

     Dovreste ora essere in grado di compilare e provare programma e
     applet ''hello world'' dalla Sun seguendo le istruzioni su
     <http://java.sun.com/progGuide/index.html>.

  55..22..  RReeddHHaatt 22..11//CCaallddeerraa PPrreevviieeww 22

  Steve Greene <sgreene@access.digex.net> suggerisce i seguenti passi.
  Ho leggermente modificato la ricetta, per cui lamentatevi degli errori
  con me. Il 'JDK' cui si fa riferimento  lo sbarco del Java
  Developer's Kit di Chapman.


    Da un sito speculare di Red Hate, procuratevi il file rpm
     disponibile per ld.so.1.7.14.  Per trovarlo, cercate
     /pub/mirrors/redhat-2.1/updates/RPMS/ld.so-1.7.14-i386.rpm So che 
     disponibile su ftp.pht.com, ftp.caldera.com. come probabilmnte
     sugli altri siti speculari di Red Hat.  Arraffatelo ed eseguite
     `rpm -Uvh ld.so-1.7.14-1.i386.rpm' sul vostro sistema.

    Gli utenti di Red Hat 2.0 and Caldera Preview 2 avranno bisogno del
     programma 'which' (viene chiamato da alcuni script nel JDK).  Un
     file rpm per 'which'  disponibile sui soliti siti speculari di Red
     Hat come parte della distribuzione Red Hat 2.1.  Prelevate ed
     installate which-1.0.i386.rpm.  Gli utenti RedHat 2.1 dovrebbero
     gi avere which sui loro sistemi o disponibile nella distribuzione
     originale.

    Procuratevi i file tar per il JDK staticamente linkato.  (linux-
     x86.jdk.static-motif.tar.gz da
     <ftp://www.blackdown.org/pub/Java/linux/>) Scompattatelo in un
     posto conveniente. Io ho messo il mio in /usr/local in modo da
     creare /usr/local/java/ ...

    Per poter lanciare Java da un utente non-root (questa  una buona
     idea!), eseguite 'chmod 666 /dev/zero'.  Red Hat e Caldera
     installano questo dispositivo con i permessi errati.

    Se non lo avete gi fatto, lanciate ldconfig da root per installare
     le nuove librerie. Se eseguite 'ldconfig -v' potete controllare di
     avere tutte le librerie caricate.  (Almeno non dobbiamo creare un
     sistema ELF prima!)

    Assicuratevi di errere loggati con un utente non-root.  Lanciate X-
     window, aprite una X-Term e provate qualcosa!

  55..33..  UUnniiffiixx

  Stefan Middendorf scrive: Unifix  una popolare versione di Linux in
  Tedesco. _(_I_m_i_t_a_r_e_, _i_m_i_t_a_r_e_! _N_d_T_) Esistono alcune distribuzioni basate
  su di esso: Linux Universe, venduto negli USA, Linux 4U, attualmente
  distribuito solo in Germania e Linux FT in Gran Bretagna.  Si sa che
  questa ricetta funziona con Unifix 1.7, Linux 4U 1st Edition, Linux
  Universe 2nd Edition, e Linux FT 1.1.


    Prelevate linux-x86.jdk.static-motif.tar.gz da
     <ftp://www.blackdown.org/pub/Java/linux/> decomprimetelo e
     scompattatelo.

    Modificate la prima riga dello script .java_wrapper:



       PRG=`which $0` >/dev/null 2>&1
       ---
       PRG=`type $0 | cut -d ' ' -f 3` >/dev/null 2>&1



    Prelevate libc-5.2.18.bin.tar.gz (io ci sono riuscito anche con
     libc-5.2.16.bin.tar.gz), e scompattatelo nel direttorio /


    Prelevate ld-so.1.7.12.tar.gz da tsx-11.mit.edu (o ogni altro sito)
     scompattatelo, per esempio in /usr/local.  Spostatevi nel
     direttorio generato ed eseguite instldso.sh Questo dovrebbe anche
     eseguire ldconfig.  Probabilmente funziona anche con versioni pi
     recenti di ld-so.

    Aggiungete /usr/local/java/bin alla variabile d'ambiente PATH.

    Procuratevi netscape-v20b4-export.i486-unknown-linux.tar.Z, e
     scompattatelo in /usr/local/<yourNetscapeDir>.

    Create un link in /usr/local/bin di ../<yourNetscapeDir>/netscape.

    Mettete /usr/local/<yourNetscapeDir>/moz2_0.zip in
     /usr/local/lib/netscape/.

  Alternativamente alla modifica del PATH, Ralf Strobel suggerisce:

    Copiate gli script .java_wrapper e appletviewer e i link @java,
     @javac, @javadoc, @javap, e @jdb da /usr/local/java/bin a
     /usr/local/bin e li potrete uasre ovunque vi troviate.

    In /java/bin/i586 potete aggiungere uno script chiamato `javadoc`



       ______________________________________________________________________
       #!/bin/sh
       `dirname $0`/java sun.tools.javadoc.Main -d <yourhtmldir> $
       ______________________________________________________________________



  dove se voi siete l'utente jrandom, <yourhtmldir> sar  jrandom/.java-
  html.

  66..  VViissuuaalliizzzzaarree ggllii AApppplleett

  Per lanciare un demo senza passare per il visore degli applet, potete
  immettere questo comando stando in cima all'albero dei direttori Java
  (/usr/local/java su molti sistemi):

       bin/java sun.applet.AppletViewer demo/<directory_name>/exampleN.html


  dove <directory name>  il sottodirettorio del demo, ed N  numero del
  file di esempio (alcuni direttori ne hanno pi d'uno).

  Steve Greene dice: ho lanciati gli esempi disponibili nei siti Java
  della Sun e quelli simili messi in giro dal NTMUG.  Ho trovato alcuni
  problemi con la sintassi negli esempi della Sun, cos ho seguito il
  programma NYMUG invece.

  appletviewer si aspettap per argomento un file html con un tag APPLET
  dentro.

  Per esempio, mettiamo che il vostro file Hello.html contenga:



  ______________________________________________________________________
  <HTML>
  <HEAD>
  <TITLE> Hello test program </TITLE>
  </HEAD>
  <BODY>
  This is an appletviewer test
  <APPLET CODE="Hello1.class" WIDTH=150 HEIGHT=25>
  </APPLET>
  </BODY>
  </HTML>
  ______________________________________________________________________



  Lanciando ''appletviewer Hello.html'' appare l'applet.  Un vantaggio
  nell'usare appletviewer  che gli eventi passati all'applet ( start(),
  init() ecc) sono conformi con le specifiche della Sun all'opposto di
  Netscape 2.0b4 (probabilmente un baco in Netscape).

  Uno svantaggio nell'usare appletviewer  che  molto pi lento di
  Netscape.

  La prima volte che lanciate Java, appare uno schermo con una licenza
  che ricorda quella di Netscape.

  77..  NNoottee ssuu PPrroobblleemmii NNoottii


  77..11..  IIll MMaakkee ddii GGNNUU nnoonn ffuunnzziioonnaa ppii ddooppoo ll''iinnssttaallllaazziioonnee ddii JJaavvaa..

  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.

  77..22..  EErrrroorree:: ttoooo mmaannyy aarrgguummeennttss''

  La variabile CLASSPATH non  correttamente inizializzata.  In
  .java_wrapper, c' del codice simile a questo:



       PRG=`which $0`
       J_HOME=`dirname $PRG`/..



  Sfortunatamente, il comando 'which' di linux  scorretto, e certe
  shell impostano $0 all'intero pathname.  Randy Chapman dice di
  corregerlo sia usando:



       J_HOME=`dirname $0`/..



  che, in modo pi sicuro:



  J_HOME=/usr/local/java



  Una correzione alternativa da Dave Dittrich :



       PRG=`csh -c "which $0"`



  E un'altra da Tim Farnum  di cambiare la riga PRG=`which $0` con:


       PRG=$0



  Lutz Behnke suggerisce:



       PRG=`type -path $0` >/dev/null 2>&1



  Un simile cambiamento deve essere fatto anche nello script
  appletviewer.

  77..33..  EErrrroorree:: ``ccaannnnoott ffiinndd ccllaassss jjaavvaa//llaanngg//TThhrreeaadd''

  La variabile CLASSPATH non  correttamente inizializzata.  Vedi
  ``sopra''.

  77..44..  UUnn mmeessssaaggggiioo ddii eerrrroorree ssii rriiffeerriissccee aa //ddeevv//zzeerroo

  Da root eseguite chmod 666 /dev/zero.

  77..55..  SSEEGGFFAAUULLTT

  Occasionalmente potreste trovarvi con lo schermo pieno di messaggi
  d'errore, e il sistema riempie allegramente la vostra area di swap e
  si blocca.

  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.

  (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!)

  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).



  77..66..  bbiinn//jjaavvaa,, bbiinn//jjaavvaacc,, oo bbiinn//aapppplleettvviieewweerr vvii ddaannnnoo uunn mmeessssaaggggiioo ddii
  hheellpp

  avete dimenticato qualche parametro su una riga di comando.

  77..77..  GGllii aapppplleett ssoonnoo vviissiibbiillii nneell vviieewweerr,, mmaa nnoonn ssuull wweebb..

  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)

  E' stato inoltre riferito che tinyhttpd, un HTTP server scritto in
  Perl, fornisce un errato tipo di contenuto.  Apache, invece, 
  piuttosto affidabile.

  77..88..  LLoogg ddeeii pprroobblleemmii

  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.

  88..  CCoorrrreellaazziioonnii

  Per informazioni generiche su java, c' il FAQ del newsgroup
  comp.lang.java;  disponibile su <http://www.city-net.com/~krom/java-
  faq.html>.

  Esiste un pi vecchio documento in stile FAQ di Joey Oravec
  joey@sun.science.wayne.edu <mailto:joey@sun.science.wayne.edu> che
  soprattutto si riferisce alla versione alfa. Lo trovate su
  <http://www.science.wayne.edu/~joey/java/linux.html>.  Ad un perto
  punto questi documenti potrebbero fondersi.

  Ecco alcune pagine relative a Java:


    Karl Asha's General Linux Java Page
     <http://substance.blackdown.org/java-linux.html>

    LinuxJava Mailing List <http://homer.ncm.com/java-linux/>

    Netrek for Java <http://www.cs.utexas.edu/users/hiep/netjav.html>

    Blue-Skies for Java <http://cirrus.sprl.umich.edu/javaweather/>

    Java Hints Page <http://www.parnasse.com/java.shtml>

  99..  DDaa AAggggiiuunnggeerree ......


    Piu' ricette per specifiche distribuzioni di linux.


  1100..  RRiinnggrraazziiaammeennttii

  Un grazie a tutti i contributori, inclusi:

    John Franks <john@math.nwu.edu>

    Zachary DeAquila <zachary@zachs.place.org>


    Steve Greene <sgreene@access.digex.net>

    Dave Dittrich <dittrich@cac.washington.edu>

    Dave Flanagan <dave@ora.com>

    Joey Oravec <mailto:joey@sun.science.wayne.edu>

    Adam Smith <aws@cs.brown.edu>

    Joe Buck <jbuck@Synopsys.COM>

    Omar Loggiodice <ologgio@netdepot.com>

    Stefan Middendorf <mdorf@stud.fh-heilbronn.de<

  Questa versione incorpora il vociferato ma mai pubblicato mini-HOWTO
  Red Hat/Caldera di Steve Greene.  Ho inoltre rubacchiato roba che
  trovavo utile dalla pagina di Joey Oravec -- un grazie speciale a lui.

  Per gli altri HOWTO e FAQ che io curo, guardate la mia home page a
  <http://www.locke.ccil.org/~esr/home.html>.

  _N_o_t_a _d_e_l _T_r_a_d_u_t_t_o_r_e Questo documento viene continuamente aggiornato.
  Ad oggi, sono state rilasciate le seguenti versioni:

    ver.1.0 21 Aprile 1996 (v.2.2, 10 February 1996)

  A questa versione in Italiano hanno contribuito (e qui si ringraziano
  caldamente):

    ancora nessuno.



