java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

拜拜、爱过 提交于 2019-12-18 12:00:54

问题


I'm using Eclipse EE Kepler and I'm trying to run derby in my program. I added to my build path derby.jar and derbyclient.jar and still I'm getting the following error: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver. Can someone help me with solving this problem?


回答1:


I stuck with the same problem 'java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver'. In my case, scope attribute is set to test

    <!-- 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>

You need to remove the scope element from the dependency and update the dependency like below.

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

You may refer this post, to get complete working example.




回答2:


You should not add these jars to the JRE directory, nor the server's lib directory. The real solution is to bundle the jars into your war file. You should consider using a build tool such as Ant or Maven. Here's how to accomplish this using Maven:

  1. Install Maven (for windows, following this tutorial: http://www.mkyong.com/maven/how-to-install-maven-in-windows/ )
  2. Create a pom.xml at the root of your project.
  3. Add your dependencies to the pom (see http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html for more details)
  4. Add the shade plugin to your pom (see http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html for more details)
  5. Run "mvn package" on the project

Here is a sample pom.xml (this is probably not a functional example):

<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>



回答3:


By adding jar to the build path in eclipse project, you are making derby driver available at compile time. But it is important that you should also make it available when container is running it. So copy your jar file in server lib directory.




回答4:


I had same problem (Windows 7, JDK 7, Eclipse Kepler) and just added C:\Program Files\Java\jdk1.7.0_25\db\lib to the Project properties -> Run/Debug settings -> Classpath -> User entries -> Add External JARs and it works.



来源:https://stackoverflow.com/questions/21262316/java-lang-classnotfoundexception-org-apache-derby-jdbc-embeddeddriver

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!