# ClassNotFoundException bei Class.forName(xx)



## metaltiffy (13. Sep 2007)

Hallo

Ich habe eine Problem
in der Zeile Class.forName("oracle.jdbc.driver.OracleDriver");
tritt jedes mal der Fehler während der Laufzeit die ClassNotFoundException auf...
Die gleiche Zeile funktioniert in einer anderen Klasse aber wunderbar...

Ich schreibe mal den Code dazu (der Rest mag auch falsch sein, aber da es sich schon so früh aufhängt, seh ich nicht, ob der Rest auch Fehler macht)


```
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class bildSpeichern
{
	
    FileInputStream   fis = null;
    Connection        cn  = null;
    PreparedStatement st  = null;

  public static void main( String[] args )
  {
	  bildSpeichern bild = new bildSpeichern(); 
	  bild.speichern();

  }//end main
  
  public void speichern(){
	    try {
	    	System.out.println(  "im try " );
	    	Class.forName("oracle.jdbc.driver.OracleDriver");
	      System.out.println( " nach class" );
	      File fl = new File( "H:/Java/Datenbanktest/Cars.jpg" );                                  // imgFile
	      fis     = new FileInputStream( fl );
	      System.out.println( " nach fis" );
			cn = DriverManager.getConnection(xxx);
			System.out.println( " nach con" );
	      // update tbl set imgColumn = 'imgFile?' where keyColumn = 'keyValue?':
	      st = cn.prepareStatement("update DVD set Bild = Desktop/cars.jpg where DVD_Titel = 'Cars'" );
	      st.setBinaryStream( 1, fis, (int)fl.length() );                 
	      st.setString( 2, "cars" );                                    // keyValue
	      st.executeUpdate();
	      System.out.println( fl.length() + " Bytes successfully loaded." );
	    } catch( Exception ex ) {
	      System.out.println( ex );
	    } finally {
	      try { if( null != st  ) st.close();  } catch( Exception ex ) {}
	      try { if( null != cn  ) cn.close();  } catch( Exception ex ) {}
	      try { if( null != fis ) fis.close(); } catch( Exception ex ) {}
	    }//end finally
  }//end speichern
}//end class
```


Ich versteh das echt nicht... in der anderen klasse läuft der Zugriff so...


----------



## SlaterB (13. Sep 2007)

in einer anderen Klasse im gleichen Projekt/ Programm (gar in der gleichen Ausführung) oder in einem anderen Programm?
wichtig ist auch der Classpath beim Programmstart, der angibt, welche Libraries zur Ausführung bekannt sind


----------



## Guest (13. Sep 2007)

eine andere Klasse aber im gleichen Package...


----------



## metaltiffy (13. Sep 2007)

aber der classpath is ja auch für beide Klassen gleich...
Das macht alles keinen sinn...  *verzweifel*


----------



## metaltiffy (13. Sep 2007)

Okay, hat sich erledigt...
wenn ich die Funktion in eine andere Klasse packe und dort (macht zwar keinen Sinn) einfach über nen Button ansteuer, dann gehts....
Java manchmal komisch...
Weiß immer noch nicht warum das nicht ging, aber egal..
Ich kann kein Häckchen setzten, bin nicht angemeldet...
Vielleicht kann das ja gelöscht werden oder so...
Sorry für die Umstände...


----------



## SlaterB (13. Sep 2007)

kopiere dir diese funktionierende Operation 1:1 in beide aufrufende Klassen,
besonders in die, in welcher es vorher nicht ging,

kann nicht sein, dass es dann nicht mehr geht,
wenn es nun aber auch so geht, dann ist es ein Anzeichen, dass vorher ein Tippfehler war oder ähnliches


----------



## ms (13. Sep 2007)

Anonymous hat gesagt.:
			
		

> eine andere Klasse aber im gleichen Package...


Ein Package kann auch über mehrere Projekte verteilt sein.
Sind also die beiden Klassen auch tatsächlich im selben Projekt?

ms


----------

