Newsgroup: it.comp.java
Titolo: Come istallare java sotto linux?

Come istallare java sotto linux?
ho istallatio l'rpm del java ma se
mando in esecuzione un programma mi dice che devo settare il
CLASSPATH.
ome faccio a settarlo?
quali directori devo inserire nel classpath?
come faccio a trovere queste directory?
Grazie in anticipo, Mario.

 ome faccio a settarlo?
se usi Bash come shell fai
export CLASSPATH=/directory/di/java/lib/classes.jar
Se hai installato un JDK 1.2.2 o superiore il Classpath non
dovrebbe essere necessario.
Davide


Innanzitutto ti suggerirei di specificare che JDK usi (1.1? 1.2? 1.3?),
ma supponiamo che tu usi una 1.2+.
Cerca la locazione precisa di dove sia il jdk (solitamente viene
specificata nella variabile JAVA_HOME, anche se dalla 1.2 non dovrebbe
essere più necessaria perchè /bin/java solitamente sotto linux è uno
script che si setta tutto a modo, compresa la JAVA_HOME). Fai
rpm -ql <package_jdk> | more
dove <package_jdk> è il nome del package nel database RPM. Se non lo
conosci fai 
rpm -qa | grep j | more
(j perchè potrebbe essere java, jdk, ...) per trovare quale sia il nome
del package contenente il jdk.
Una volta trovata la directory home di Java (per la jdk1.3 IBM è in
/opt/IBMJava2-13/, per la 1.3 Sun è /usr/java/jdk1.3/, per la 1.2.2 Sun
mi pare che sia /usr/local/jdk1.2.2), puoi infilare i package javax
nella directory JAVA_HOME/jre/lib/ext (ma solo dalla 1.2 in poi), in
questo modo ti eviti di infilarli nel CLASSPATH.
I TUOI package invece vanno messi nel CLASSPATH. Il CLASSPATH è una
variabile di ambiente; se la macchina è tua, o se ritieni che tutti gli
utenti debbano/possano usare Java, ti suggerirei di impostare la
variabile di ambiente CLASSPATH nel file /etc/profile; in alternativa
puoi settarla nel tuo file ~/.bashrc o ~/.profile, o puoi passarla
direttamente come parametro alla JVM.
Cosa in filare nel CLASSPATH? Tutti i percorsi completi dei jar che non
fanno parte della distribuzione standard del jdk (e che non sono
javax.*), più tutti i percorsi delle directory che contengono le tue (o
di qualcun altro) classi Java, separeati da ':'. Ad esempio:
export
CLASSPATH=/usr/share/java/Acme.zip:/usr/share/java/myJar.jar:.:~/java
Nel caso tu usi una jdk 1.1 devi specificare nel classpath i file
JAVA_HOME/classes.zip più tutti i jar delle estensioni standard (perché
la feature del jre/lib/ext non va) più il CLASSPATH che avresti settato
per la jdk1.2+.
In alternativa puoi fare
java -classpath
/usr/share/java/Acme.zip:/usr/share/java/myJar.jar:.:~/java NomeClasse
Ciao,
	Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 ha scritto:


Ho provato ad eseguire un programma del tipo:
----------------------------------------------------
package prova;
import java.io.*;
public class provac {
  public provac() {
    System.out.println("----Prova riuscita!!!!----");
      }
   public static void main(String[] args) {
    provac myClass1 = new provac();
  }
}
--------------------------------------------------
ecco quello che ho scritto e quello che mi ha risposto:
(il programma è stato compilato sotto windows ,.... ma essendo java non
dovrebbero esserci problemi no!?!?)
[mario@localhost mario]$ java ./prova/provac.class
Internal error: caught an unexpected exception.
Please check your CLASSPATH and your installation.
java/lang/ClassNotFoundException: //prova/provac/class
        at java.lang.Class.forName(Class.java:native)
        at java.lang.Class.forName(Class.java:52)
Abortito                                              
Il mio CLASSPATH è vuoto.
il mio PATH è 
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/usr/games:/home/rino/bin:/usr/java/jdk1.3.0_02/bin:/usr/X11R6/bin:/usr/games:/usr/X11R6/bin:/usr/games    
uso quindi:
/usr/java/jdk1.3.0_02/bin
Come posso far girare questo semplice programma?


 [mario@localhost mario]$ java ./prova/provac.class
java -classpath $CLASSPATH:. prova.provac, non prova/provac/class!
Altrimenti capisce che deve cercare la classe class all'interno del
package prova.
