Newsgroup: it.comp.java
Titolo: Aiuto Compilazione

Salve,
sono alle prime armi con java, e sto cercando di creare i primi programmi
per interfacciarmi an un db postgresql.
Il testo del semplice programma è questo:
import java.sql.*;
import java.util.*;
 public class condb{
 public condb() {
 try{
  Class.forName ("org.postgres.Driver");
     Connection con=DriverManager.getConnection("jdbc:postgresql:rubrica");
  Statement stmt=con.createStatement();
  ResultSet rs=stmt.executeQuery("select * from nomi");
   while (rs.next()){
        System.out.println("Nome: "+rs.getString(1));
   System.out.println("Cognome: "+rs.getString(2));
                System.out.println(" ");
      }
  }
 catch(SQLException ex){
  System.err.println("che palle");
 }
 catch(ClassNotFoundException cnfe){
      System.out.println("Attenzione classe non trovata
"+cnfe.getMessage());
    }
  }
  public static void main(String argv[]){
   condb c=new condb();
  }
}
Quando lo compilo sotto linux uso la seguente linea di comando:
 javac -classpath .:postgresql.jar condb.java
ed immancabilmente mi risponde che c'è un errore alla riga 5 del file
("public class condb{") aggiungendo questo:
Super class "java/lang/Object" is not accessible: it is not in the same
package and not public [JLS 8.1.3 , 6.6]
Immagino che il problema stia nella definizione del classpath...ho provato a
creare la variabile CLASSPATH, ma non ho idea, a parte la posizione di
postgresql.jar, di che altro metterci.
Per favore aiutatemi!
  Grazie in anticipo
     Beatrice
P.S. Utilizzo J2SDK 1.4.0_01.

 postgresql.jar, di che altro metterci.
Mettici anche la directory d'installazione del jdk


ho provato a metterla nella CLASSPATH, se compilo con l'istruzione
javac condb
non mi da errore, ma quando vado ad eseguirlo mi da eccezione perchè non
trova il driver di Postgres.
Ho provato anche ad eseguirlo con:
java -classpath postgresql.jar condb
ma mi dice testualmente:
Couldn't find or load essential class 'java/lang/Object'
java.lang.NoClassesDefFoundError java/lang/object
se invece compilo con
javac -classpath .:postgresql.jar:/home/beatrice/j2sdk1.4.0_01 condb.java
non mi trova la solita java/lang/Object..
ma si può sapere dove le hanno messe le classi base del java dentro la nuova
release???
Forse non trova le classi per interpretare il Driver di postgresql...bho?
Per favore aiutatemi, dovrei farci un progetto per l'università in java, ma
se non riesco a compilare sarà un po' difficile...
Ciao
   Beatrice

 release???
Io ho installato la 1.4.1beta, la struttura delle directory è sempre la
solita.
Io ho questo tipo di configurazione:
JDK_HOME=/usr/java/j2sdk1.4.1
CLASSPATH=.:$JDK_HOME:$JDK_HOME/lib
export JDK_HOME CLASSPATH
e tutto funziona correttamente.


Scusa, ma come mai la tua variabile si chiama JDK_HOME  e non JAVA_HOME come
c'è scritto nelle istruzioni?
Potrebbe essere quella la causa per la quale non mi funziona?Ora provo,
comunque a me java mi va benone quando devo compilare programmi che non
richiedano il collegamento a classi esterne come i Driver di postgres.
Grazie comunque per il tuo aiuto.
   Saluti
     Beatrice

 Grazie comunque per il tuo aiuto.
Io il JDK ce l'ho in /usr/java/j2sdk1.4.0 e le classi possono essere o
nella directory corrente o in /home/linux/Java
Quindi in .bashrc ho scritto:
PATH=$PATH:/usr/java/j2sdk1.4.0/bin
CLASSPATH=/home/linux/Java:.

 richiedano il collegamento a classi esterne come i Driver di postgres.
Prova a mettere il tuo postgresql.jar nella directory lib/ext.del jdk