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

时间:2014-01-21 15:28:00

标签: java java-ee derby

我正在使用Eclipse EE Kepler而我正在尝试在我的程序中运行derby。我添加到了构建路径derby.jarderbyclient.jar,但仍然出现以下错误:  java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver。 有人可以帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:7)

我遇到了同样的问题' java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver'。在我的例子中,scope属性设置为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>

您需要从依赖项中删除scope元素并更新依赖项,如下所示。

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

您可以参考this post,以获得完整的工作示例。

答案 1 :(得分:3)

您不应将这些jar添加到JRE目录,也不应添加到服务器的lib目录中。真正的解决方案是将罐子捆绑到war文件中。您应该考虑使用Ant或Maven等构建工具。以下是如何使用Maven完成此任务:

  1. 安装Maven(适用于Windows,遵循本教程:http://www.mkyong.com/maven/how-to-install-maven-in-windows/
  2. 在项目的根目录下创建一个pom.xml。
  3. 将您的依赖项添加到pom(有关详细信息,请参阅http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
  4. 将阴影插件添加到您的pom(有关详细信息,请参阅http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html
  5. 运行&#34; mvn package&#34;在项目上
  6. 以下是一个示例pom.xml(这可能不是一个功能示例):

    <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 :(得分:2)

通过在eclipse项目的构建路径中添加jar,您可以在编译时使用 derby driver 。但重要的是,当容器运行时,您也应该使它可用。所以将你的jar文件复制到服务器lib目录中。

答案 3 :(得分:2)

我有同样的问题(Windows 7,JDK 7,Eclipse Kepler),只是将C:\Program Files\Java\jdk1.7.0_25\db\lib添加到项目属性 - &gt;运行/调试设置 - &gt; Classpath - &gt;用户条目 - &gt;添加外部JAR,它的工作原理。