Avatar billede trenskow Nybegynder
25. marts 2004 - 01:28 Der er 19 kommentarer og
1 løsning

java.lang.ClassNotFoundException: interbase.interclient.Driver ?

Hejsa allesammen.. jeg har et lille problem, som jeg nu har kæmpen med, søgt her på eksperten og på google, men intet virker... hjælp ønskes :-)

Her er mine klasser
package quintex;

/**
* <p>Title: Quintex Rail System</p>
* <p>Description: Program til at administrere Køreplan og salg</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author Rasmus Trenskow
* @version 1.0
*/

import java.sql.*;
class Database{

  public static Database database = null;  //singleton

  private String driver = "interbase.interclient.Driver";
  private Connection connection = null;

  private Database() {
  }

  public static Database instance(){
    if( database == null ){
      database = new Database();
    }
    return database;
  }

  public void open(String url, String user, String password){
    try{
      Class.forName(driver);
      connection = DriverManager.getConnection(url, user, password );
    }
    catch ( ClassNotFoundException cnfex ) {
      System.err.println("Failed to load JDBC/ODBC driver." );
      cnfex.printStackTrace();
    }
    catch ( SQLException sqlex ) {
      System.err.println( "Unable to connect" );
      sqlex.printStackTrace();
    }
  }

  public int executeUpdate(String update) throws SQLException{
    return connection.createStatement().executeUpdate(update);
  }

  public ResultSet executeQuery(String query) throws SQLException{
    return connection.createStatement().executeQuery(query);
  }

  public void close(){
    try{
      connection.close();
      database = null;
    }
    catch(SQLException sqlex){
      sqlex.printStackTrace();
    }
  }
}


package quintex;
import java.sql.*;
/**
* <p>Title: Quintex Rail System</p>
* <p>Description: Program til at administrere Køreplan og salg</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author Rasmus Trenskow
* @version 1.0
*/

class Test{
  public static void main(String[] args)throws ClassNotFoundException , SQLException{

    //String url = "jdcb:odbc:quin";
    String url = "jdbc:interbase:quin";
 
    String user = "sysdba";
    String password = "masterkey";

    Database db = Database.instance();
    db.open(url, user, password);
    System.out.println("Tester forbindelse");
    }
}


og så får jeg denne række af fejl
Failed to load JDBC/ODBC driver.

java.lang.ClassNotFoundException: interbase.interclient.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:141)
    at quintex.Database.open(Database.java:32)
    at quintex.Test.main(Test.java:22)

Jeg har været inde i odbc datakilder, og tilføjet quin som datakilde.

Hvad har jeg gjort forkert?
Avatar billede Slettet bruger
25. marts 2004 - 01:39 #1
Du skal huske at angive en classpath til driveren som giver forbindelse til din database... dette kan gøres ved at sætte system-enviroment variabler op, eller vha. console parametren -cp, således du burde starte dit program med kommandoen:

java -cp c:/sti/til/min/driver/driver.jar Test
Avatar billede trenskow Nybegynder
25. marts 2004 - 10:30 #2
hmm... et eller andet har jeg åbenbart gjort forkert.. for nu har jeg søgt hele min computer for den driver.jar ... og den er ikke til at finde... Easysoft har installeret en fil der hedder _UNODBC.dll. Den prøver jeg at sætte en classpath til
Avatar billede Slettet bruger
25. marts 2004 - 12:18 #3
jamen, hov......jeg ved jo ikke hvad din driver.jar fil i virkeligheden hedder. Jeg var inde og tjekke på www.easysoft.com, og kunne ikke finde ud af hvad den virkelige jar-fil hed :-| Sorry....

Men filen hedder højest sandsynligt ikke driver.jar
Avatar billede arne_v Ekspert
25. marts 2004 - 19:25 #4
Det er ikke .dll filen - den skal hedde .jar !

Men er der ikke et easysoft directory ? Og der kan ikke være mange .jar filer i det ...

Gæt: EJOB.jar
Avatar billede trenskow Nybegynder
25. marts 2004 - 23:27 #5
hmmm.. jeg fandt den her C:\Program Files\Borland\InterBase\lib\interclient.jar
og har været inde og sætte den som system variabel...
Får stadig samme fejl...
og har prøvet at kære den med java -cp "sti" Test
og får fejlen
Exception in thread "main" java.lang.NoClassDefFoundError: Test
Avatar billede Slettet bruger
25. marts 2004 - 23:31 #6
prøv at tilføje ";." i slutning af stien du sætter til classpath
Avatar billede trenskow Nybegynder
25. marts 2004 - 23:37 #7
hmm.. niks..
i system variabel.. der har jeg under variabel skrevet odbc... har det nogen betydning.. er det rigtigt. og i value har jeg skrevet C:\Program Files\Borland\InterBase\lib\interclient.jar;
Avatar billede Slettet bruger
25. marts 2004 - 23:43 #8
i systemvariabel ???? ok, lad os lige være sikre på hvordan dit program skal eksekveres, ok?

Placer dig i roden af din applikation, og skriv:

java -cp "C:\Program Files\Borland\InterBase\lib\interclient.jar" Test

hvis dette ikke virker, så prøv med:

java -cp "C:\Program Files\Borland\InterBase\lib\interclient.jar";. Test

er det det du har testet med?
Avatar billede trenskow Nybegynder
26. marts 2004 - 00:05 #9
desværre... ingen af dem virker
Avatar billede Slettet bruger
26. marts 2004 - 00:06 #10
ok, *klør sig i hovedbunden* jeg er blank :-|
Avatar billede trenskow Nybegynder
26. marts 2004 - 00:14 #11
jeg er også helt blank her.. har snart søgt kloden rundt på google et par gange...
Avatar billede trenskow Nybegynder
26. marts 2004 - 00:20 #12
ok... nu forstår jeg slet ingen ting... når jeg kører den java -cp /sti/ Test
så kan den ikke engang finde Test klassen... selvom jeg står i biblioteket... nu ramler det da helt for mig.....
jeg får da aldrig lavet det projekt færdigt :-)
Avatar billede Slettet bruger
26. marts 2004 - 00:24 #13
prøv dette, tag filen interclient.jar og kopier den til mappen med Test.class... Derefter kører du blot denne kommando:

java -cp . Test

Det SKAL fungere!!! :-)
Avatar billede Slettet bruger
26. marts 2004 - 00:31 #14
endnu bedre, eksekver blot følgende kommando:

java Test

;-)
Avatar billede trenskow Nybegynder
26. marts 2004 - 00:35 #15
hmm... der er intet der fungerer som det skal her...
jeg er i bilbioteket med Test.class skriver java -cp . Test
og det virker ikke

Jeg har hørt mange smukke ting om mySQL efterhånden... måske det snart ville være nemmere at skifte database
Avatar billede Slettet bruger
26. marts 2004 - 00:36 #16
hvilken fejl får du nu? Gi' os et dump (stacktrace)
Avatar billede trenskow Nybegynder
26. marts 2004 - 00:43 #17
klippet fra dos
F:\projekt\Quintex\Quintex\kode\program\Quintex\classes\quintex>java Test
Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: qui
ntex/Test)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

det ser ud som om den ikke kan finde Test, selvom den står i biblioteket
Avatar billede arne_v Ekspert
26. marts 2004 - 07:25 #18
Du bruger pakker !

java -classpath F:\projekt\Quintex\Quintex\kode\program\Quintex\classes quintex.Test
Avatar billede arne_v Ekspert
26. marts 2004 - 07:25 #19
interclient.jar er iøvrigt Borlands driver ikke Easysoft's
Avatar billede trenskow Nybegynder
26. marts 2004 - 22:46 #20
Jeg har rodet lidt med mit JBuilder, og nu virker det.
Bare jeg dog vidste hvad jeg havde gjort til en anden gang.
Men Tusind tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester