Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到JDBC Derby驱动程序_Java_Sql_Database_Jdbc - Fatal编程技术网

Java 未找到JDBC Derby驱动程序

Java 未找到JDBC Derby驱动程序,java,sql,database,jdbc,Java,Sql,Database,Jdbc,我遵循了JDBC教程:,并成功地构建和创建了自己的JDBC数据库,没有太多麻烦。但是,现在当尝试从java应用程序连接到数据库时,我收到一个异常: java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序 目录 然后,在尝试使用以下命令手动指定JDBC驱动程序时: Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); 我得到以下异常错误: java.lang.ClassNotFoundException

我遵循了JDBC教程:,并成功地构建和创建了自己的JDBC数据库,没有太多麻烦。但是,现在当尝试从java应用程序连接到数据库时,我收到一个异常:

java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序 目录

然后,在尝试使用以下命令手动指定JDBC驱动程序时:

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
我得到以下异常错误:

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

我确信该驱动程序在加载时应该没有问题,因为它是教程中指定的驱动程序,并且使用该驱动程序创建数据库时没有问题。我尝试在connection语句的末尾添加属性“create=true”,以尝试创建一个全新的数据库,但仍然收到相同的异常错误

请看下面我的申请代码。 任何帮助都会很棒:)

java.sql.SQLException:未找到适用于jdbc:derby:db的驱动程序 目录

因此,您的错误可能是由以下原因引起的:

驱动程序加载不正确或您的
URL
格式不正确。因此,首先需要确保
*.jar
位于类路径中。看看吧

同时尝试将您的
URL
更改为:

jdbc:derby://<path>/<databasename>;create=true
jdbc:derby://;create=true
create=true
将确保在数据库不存在时创建数据库

更新:
看看这张卡片:

你说你已经按照教程做了。在本教程中,您必须安装JDBC驱动程序

安装JDBC驱动程序通常包括将驱动程序复制到 您的计算机,然后将其位置添加到类路径

安装您运行的驱动程序后

java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
只有当你搞错了正确的潜水员,这才有可能

你用过

org.apache.derby.jdbc.EmbeddedDriver
加载驱动程序

但应该使用

org.apache.derby.jdbc.ClientDriver
有关详细信息,请参阅的“设置DERBY_安装”和“配置嵌入式DERBY”部分

Derby是JavaSE安装的一部分,我使用了安装环境变量
Derby_HOME
,而不是链接中显示的
Derby_INSTALL

C:\> set DERBY_HOME=c:\Program Files\Java\jdk1.8.0_60\db
C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;.
C:\> cd %DERBY_INSTALL%\bin
c:\Program Files\Java\jdk1.8.0_60\db\bin> setEmbeddedCP.bat

如果您有这种类型的错误

java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
如果您使用的是
netbeans
,则必须遵循以下步骤:

  • 右键单击库
  • 选择添加库选项,然后从库列表中选择“Java DB驱动程序”

  • Java JDK同时提供这两种功能

    org.apache.derby.jdbc.EmbeddedDriver
    org.apache.derby.jdbc.ClientDriver
    
    在eclipse中,将以下JAR添加到使用过的JRE(JDK)或显式地添加到您的项目中

    [JDK]db/lib/derby.jar (EmbeddedDriver)
    [JDK]db/lib/derbyclient.jar (ClientDriver)
    

    对于runtine,您需要为java应用程序提供适当的jar。

    我已经将任何需要的jdbc驱动程序放在了jre\lib\ext目录中。 在我的系统上是:X:\Java\jre1.8.0\u 181\lib\ext
    希望能有所帮助。

    在使用客户端驱动程序时,我得到了java.lang.ClassNotFoundException。 我使用了最新的驱动程序二进制文件,这是个错误

    当时,最新的驱动程序二进制文件是10.15.1.3,就在这里:

    我使用的是Java8,我使用的是Hibernate5.4.2.Final。
    然而,驱动程序是针对Java9编译的

    我最近发现,如果使用
    jlink
    创建运行时,可能需要包含额外的jdk模块,以允许驱动程序实例化


    在我的例子中,我需要在映像中包含
    java.naming
    java.management
    模块。

    如何指定类路径?能否尝试
    “jdbc:derby:+dbName+”create=true”
    ?将derby.jar添加到您的类路径中。@lhuang我刚刚尝试了您的第一个建议,收到了相同的错误消息:找不到驱动程序。关于你的第二个建议,我如何将它添加到我的项目类路径中?我已经下载了Derby库文件并将其添加到我的Windows环境变量路径中。如果您是通过命令行运行Java,则应该将JAR添加到类路径环境,而不是路径。如果您正在使用eclipse,请参阅如何知道Ice Phoenix正在使用Derby服务器?因为
    ClassNotFoundException
    用于嵌入式驱动程序,因此不使用嵌入式。但是如果他正在使用嵌入式DB,则必须使用嵌入式驱动程序。如果他使用的是服务器连接,他必须首先启动服务器,这是他的帖子没有提到的。@a_horse_和_no_name如果更改驱动程序将解决问题,那么我的任务就完成了。感谢建议人员,但如上所述,结果证明它与不引用驱动程序一样简单:)。非常感谢你在这方面的意见,谢谢。谢谢你的建议。事实证明,我缺少引用库(Classpath)中所需的derby文件。将它们添加到数据库中,可以创建一个新的数据库,甚至可以链接到我的旧数据库。现在只需要了解如何使用外部IP地址链接到数据库(哈哈:)
    [JDK]db/lib/derby.jar (EmbeddedDriver)
    [JDK]db/lib/derbyclient.jar (ClientDriver)