簡體   English   中英

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

[英]java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

我正在使用Eclipse EE Kepler,而我正試圖在我的程序中運行derby。 我添加到我的構建路徑derby.jarderbyclient.jar ,但我仍然收到以下錯誤: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver 有人可以幫我解決這個問題嗎?

我遇到了同樣的問題'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>

您可以參考這篇文章 ,以獲得完整的工作示例。

您不應將這些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. 在項目上運行“mvn package”

這是一個示例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>

通過在eclipse項目中將jar添加到構建路徑,您可以在編譯時使用derby驅動程序 但重要的是,當容器運行時,您也應該使它可用。 因此, 將jar文件復制到服務器lib目錄中。

我有同樣的問題(Windows 7,JDK 7,Eclipse Kepler),只是將C:\\Program Files\\Java\\jdk1.7.0_25\\db\\lib到項目屬性 - >運行/調試設置 - >類路徑 - >用戶條目 - >添加外部JAR,它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM