Java &引用;未找到类:无法加载JDBC驱动程序org.apache.derby.JDBC.EmbeddedDriver";尽管在类路径中包含了必需的jar

Java &引用;未找到类:无法加载JDBC驱动程序org.apache.derby.JDBC.EmbeddedDriver";尽管在类路径中包含了必需的jar,java,eclipse,jdbc,ant,derby,Java,Eclipse,Jdbc,Ant,Derby,在接下来的过程中,为了测试是否一切都设置正确,我从Eclipse运行了“setup”Ant目标。以下是我收到的错误消息: Buildfile: C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\build.xml setup: drop-tables: [echo] C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\classes;C:\Users\bingis_khan

在接下来的过程中,为了测试是否一切都设置正确,我从Eclipse运行了“setup”Ant目标。以下是我收到的错误消息:

    Buildfile: C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\build.xml
setup:
drop-tables:
     [echo] C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\classes;C:\Users\bingis_khan\Downloads\db-derby-10.15.2.0-bin\db-derby-10.15.2.0-bin\lib\derby.jar;C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\lib\JDBCTutorial.jar;C:\apache\xalan-j_2_7_2\xalan.jar

BUILD FAILED
C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\build.xml:141: The following error occurred while executing this line:
C:\Users\bingis_khan\eclipse-workspace\JDBCTutorial\build.xml:84: Class Not Found: JDBC driver org.apache.derby.jdbc.EmbeddedDriver could not be loaded

Total time: 374 milliseconds
此处的[echo]设置为打印类路径。如下一节所示,classpath中的路径与这些存档的实际位置相匹配:

Directory of C:\Users\bingis_khan\Downloads\db-derby-10.15.2.0-bin\db-derby-10.15.2.0-bin\lib

04/20/2021  08:57 PM    <DIR>          .
04/20/2021  08:57 PM    <DIR>          ..
04/20/2021  08:57 PM         3,683,035 derby.jar
04/20/2021  08:57 PM             1,490 derby.war
04/20/2021  08:57 PM           601,103 derbyclient.jar
04/20/2021  08:57 PM            83,942 derbyLocale_cs.jar
04/20/2021  08:57 PM            99,882 derbyLocale_de_DE.jar
*snip*
C:\Users\bingis\u khan\Downloads\db-derby-10.15.2.0-bin\db-derby-10.15.2.0-bin\lib目录
2021年4月20日08:57下午。
2021年4月20日08:57下午。。
2021年4月20日08:57 PM 3683035 derby.jar
2021年4月20日08:57下午1490德比战
2021年4月20日08:57 PM 601103 derbyclient.jar
2021年4月20日08:57下午83942 derbyLocale_cs.jar
2021年4月20日08:57 PM 99882 derbyLocale_de_de.jar
*剪断*
我所尝试的:

  • 尝试将反斜杠改为斜杠,反之亦然
  • 尝试将derby.jar更改为derbyclient.jar
  • 以防万一,将归档文件(在Ant之外)导入Eclipse项目。 上述方法都不起作用(甚至改变了“设置”的输出)
在我看来:

  • -Poster没有将derby.jar添加到类路径
  • -不同的情况,但仍然适用于解决方案-无
  • 其他一些,但大多数是指运行时ClassNotFoundException。我还没走那么远
编辑: 同时附上相关的蚂蚁目标:

<target name="drop-tables">
    <echo>${toString:CLASSPATH}</echo>
    <sql driver="${DB.DRIVER}" url="${DB.URL}" userid="${DB.USER}"
         password="${DB.PASSWORD}" classpathref="CLASSPATH"
         delimiter="${DB.DELIMITER}" autocommit="false" onerror="continue">
      <transaction src="./sql/${DB.VENDOR}/drop-tables.sql"></transaction>
    </sql>
  </target>

${toString:CLASSPATH}

既然您使用的是Derby 10.15,那么您必须在类路径中为嵌入式驱动程序添加
derbyshared.jar

更多信息请点击此处:

请特别注意这一部分:

添加了一个新的jar文件(derbyshared.jar)。所有Derby配置都需要它。此外,在运行网络服务器、使用Derby数据源和直接引用JDBC驱动程序时,现在需要derbytools.jar库


类路径可能缺少`derbytools.jar(或者更多)-检查@user15358848 Nevermind,我在修改类路径时遗漏了一些东西。解决方案是包含
derbytools.jar
!谢谢谢谢你的回答!但是,
ant设置
输出仍然是一样的……您是否尝试在调用ant'sql'任务时指定'classpath'元素?