[ karas @ 23.08.2004. 14:46 ] @
Skinuo sam mysql-connector-java-3.0.14-production.tar.gz, iskopirao mysql-connector-java-3.0.14-production-bin.jar u /usr/jdk1.3/jre/lib/ext i stavio CLASSPATH="/usr/jdk1.3/jre/lib/ext", bash kako je napisano u dokumentaciji. Ipak, registracija drajvera (kod iz dokumentacije)

Code:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

// Notice, do not import com.mysql.jdbc.* or you will have problems! 

public class LoadDriver 

    public static void main(String[] args) 
    { 
        try 
    { 
            // The newInstance() call is a work around for some 
            // broken Java implementations

            Class.forName("com.mysql.jdbc.Driver").newInstance(); 
        }
        catch (Exception ex) 
        { 
        System.out.println("Error");   
        }
    }
}


izbacuje Exception in thread "main" java.lang.NoClassDefFoundError: LoadDriver. U chemu je problem?
[ hyle @ 23.08.2004. 14:58 ] @
Problem verovatno nema nikakve veze sa mySql drajverima vec je u pitanju lose podesen classpath.
Klasa LoadDriver mora da se nalazi u classpath varijabli, najverovatnije ces problem resiti ukoliko dodas TACKU (oznacava trenutni direktorijum) na kraj classpath-a.
npr. CLASSPATH="/usr/jdk1.3/jre/lib/ext;.;"
[ filmil @ 23.08.2004. 15:00 ] @
Ako su klase spakovane u .jar, onda u CLASSPATH treba da uneseš ime te ..jar datoteke a ne direktorijum u kome se ona nalazi.

Code:
CLASSPATH=/usr/jdk1.3/jre/lib/ext/mysql-connector-java-3.0.14-production-bin.jar
 


Takođe ne treba zaboraviti „export“ promenljive CLASSPATH ili, još bolje, postavljanje posebnog classpath-a za svaki projekat. To će te poštedeti mnogih glavobolja u budućnosti a npr. eclipse to trivijalno omogućava.

f


[Ovu poruku je menjao filmil dana 23.08.2004. u 17:03 GMT]
[ karas @ 23.08.2004. 19:09 ] @
Stavio sam u .profile
Code:

export CLASSPATH="/usr/jdk1.3/jre/lib/ext/mysql-connector-java-3.0.14-production-bin.jar:."

sada
Code:

catch(Exception ex)
{
  System.out.println(ex.toString());
}

ispisuje java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
Zashto?

[ filmil @ 24.08.2004. 08:29 ] @
Neznano zašto. Kod mene radi:

Code:
filip@cow:~/tmp
 $ javac LoadDriver.java 
 filip@cow:~/tmp
 $ java -classpath ./mysql-connector-java-3.0.14-production-bin.jar LoadDriver Exception in thread "main" java.lang.NoClassDefFoundError: LoadDriver
 filip@cow:~/tmp
 $ java -classpath ./mysql-connector-java-3.0.14-production-bin.jar:. LoadDriver
 filip@cow:~/tmp
 $
 

f

p.s. Kada si stavio CLASSPATH u profile, onda si se jel tako ponovo ulogovao i proverio da li CLASSPATH ima odgovarajuću vrednost? Iz mog nevelikog iskustva je uvek bolje classpath zadati u samoj komandnoj liniji. Čak i ako ima previše jarova, mnogo je bolje rešenje. Probaj da uradiš ovako kako sam ti napisao, s tim što moraš obezbediti da se .jar i LoadDriver.class nalaze u trenutnom direktorijumu.
[ filmil @ 24.08.2004. 08:38 ] @
I da ne zaboravim, pročitaj ovaj neveliki dokument o podešavanju putanje za klase.

f
[ karas @ 24.08.2004. 14:24 ] @
Zaboravio sam da stavim r atribut za mysql-connector-java-3.0.14-production-bin.jar pa normalno da nije uspeo da ga otvori.
Hvala na pomoci.