2014-01-21 9 views
5

Ich benutze Eclipse EE Kepler und ich versuche, Derby in meinem Programm zu laufen. Ich habe zu meinem Build-Pfad derby.jar und derbyclient.jar hinzugefügt und immer noch bekomme ich den folgenden Fehler: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver. Kann mir jemand helfen, dieses Problem zu lösen?java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

+1

sauber und bauen Sie das Projekt. –

+0

Fertig schon und nichts passiert. Irgendwelche anderen Ideen? –

+0

Überprüfen Sie mit Strg + Umschalt + T und geben Sie den Klassennamen ein, der fehlt. –

Antwort

2

Durch Hinzufügen von jar zum Build-Pfad in Eclipse-Projekt, machen Sie Derby-Treiber zur Kompilierzeit verfügbar. Es ist jedoch wichtig, dass Sie es auch verfügbar machen, wenn der Container es ausführt. So kopieren Sie Ihre JAR-Datei in Server-Verzeichnis lib.

+0

Ich habe bereits mein Problem gelöst - o kopiert denby.jar und derbyclient.jar in meine Programme (x86)/Java/jre ... und es begann zu arbeiten. Danke für die Hilfe. –

+2

Das Hinzufügen zum jre-Verzeichnis ist keine richtige Lösung. Es ist keine gute Methode, irgendwelche JARs in das JRE-Verzeichnis zu schreiben ... Sie müssen es in Ihren Klassenpfad aufnehmen oder das erforderliche jar in das Projekt packen. –

3

Sie sollten diese JAR-Dateien weder dem JRE-Verzeichnis noch dem lib-Verzeichnis des Servers hinzufügen. Die wirkliche Lösung ist, die Gläser in Ihre Kriegsdatei zu bündeln. Sie sollten ein Build-Tool wie Ant oder Maven in Betracht ziehen. Hier ist, wie dies mit Maven zu erreichen:

  1. Maven installieren (für Windows, nach diesem Tutorial: http://www.mkyong.com/maven/how-to-install-maven-in-windows/)
  2. ein pom.xml Erstellen an der Wurzel Ihres Projektes.
  3. Fügen Sie Ihre Abhängigkeiten zu dem pom (siehe http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html für weitere Details)
  4. den Schatten Plugin Ihre pom hinzufügen
  5. Run "mvn-Paket" an dem Projekt

(http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html für weitere Details) hier ist ein Beispiel pom.xml (ist dies wahrscheinlich nicht ein funktionales Beispiel):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <dependencies> 
     <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.10.2.0</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.3</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <minimizeJar>true</minimizeJar> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
2

ich gleiches Problem hatte (Windows 7, JDK 7, Eclipse Kepler) und gerade hinzugefügt C:\Program Files\Java\jdk1.7.0_25\db\lib zu den Projekteigenschaften -> Run/Debug Einstellungen -> Klassenpfad -> Benutzereinträge -> Externe JARs hinzufügen und es funktioniert.

4

Ich steckte mit dem gleichen Problem 'java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver'. In meinem Fall ist scope-Attribut gesetzt

<!-- https://mvnrepository.com/artifact/org.apache.derby/derby --> 
    <dependency> 
     <groupId>org.apache.derby</groupId> 
     <artifactId>derby</artifactId> 
     <version>10.13.1.1</version> 
     <scope>test</scope> 
    </dependency> 

Sie müssen testen, den Umfang Element aus der Abhängigkeit entfernen und die Abhängigkeit wie unten zu aktualisieren.

<!-- https://mvnrepository.com/artifact/org.apache.derby/derby --> 
    <dependency> 
     <groupId>org.apache.derby</groupId> 
     <artifactId>derby</artifactId> 
     <version>10.13.1.1</version> 
    </dependency> 

Sie this post beziehen, komplettes Arbeitsbeispiel zu erhalten.

+0

Danke !! Das würde mich lange brauchen. Vielen Dank :) –

Verwandte Themen