Windows 上的 Squirrel SQL & H2 插件:ClassNotFoundException: org.h2.Driver

Posted

技术标签:

【中文标题】Windows 上的 Squirrel SQL & H2 插件:ClassNotFoundException: org.h2.Driver【英文标题】:Squirrel SQL & H2 plugin on Windows: ClassNotFoundException: org.h2.Driver 【发布时间】:2014-09-11 16:08:16 【问题描述】:

我正在尝试使用 Squirrel SQL 客户端连接到 H2 服务器实例。

我面临的问题是,当我点击要连接的服务器的“连接”按钮时,我得到一个:

ClassNotFoundException: org.h2.Driver

我以为是因为 h2.jar 不在类路径中。然后我编辑了squirrel-sql.bar 来尝试两件事。

我尝试的第一件事是将 JAR 添加到 PATH 中,如下所示:

SET PATH=%PATH%;C:\Program Files\squirrel-sql-3.5.3\plugins\h2.jar

然后我重新启动了 Squirrel。同样的错误。

然后我尝试添加:

set TMP_CP=%TMP_CP%;"C:\Program Files\squirrel-sql-3.5.3\plugins\h2.jar"

然后我重新启动了 Squirrel。同样的错误。

当我查看控制台时,我可以看到 h2.jar 在 PATH 和/或 SQUIRREL_CP 中,但始终出现相同的错误。

我想知道我是否忘记了如何安装/配置 SQuirrel 和/或 H2?

【问题讨论】:

【参考方案1】:

每次使用不同的驱动程序时都无需修改批处理文件,只需通过 GUI 修改驱动程序类路径即可。

在“驱动程序”选项卡中双击相应的驱动程序,然后单击“额外类路径”选项卡并添加驱动程序 jar。

您可以在帮助文件的 SQuirreL 部分的“如何连接到数据库”下找到更多信息。在 SQuirreL 中按 F1 以查看帮助文件。你可以在http://www.squirrelsql.org/screenshots/driver.html看到截图

【讨论】:

很好的答案,这解决了我的问题:“额外的类路径”。还有更多:这里填写的 jar-file-path 可能是刚刚下载的 jar,但我建议您在 /.m2/ 中引用同一文件的其他实例,您可能通过 Maven 拥有该文件目录(它适用于我)..奖金是,您只有一个版本的库,并且您的所有应用程序项目都使用相同版本的松鼠。 因此,当您设置 H2 驱动程序时,直到红色驱动程序图标变为绿色,当您重新启动 Squirrel 时。然后,设置您的别名:连接字符串。请注意,遗憾的是,您设置的任何复选框(即自动登​​录)都无法更改。 (您必须重新设置别名,并使用您想要的差异。) 关于 env-vars:使用“Extra Class Path”(内部在 Squirrel 中)(和 Maven),您无需在操作系统中设置任何新的环境变量。 (在这里反对以前的答案)【参考方案2】:

我发现了我的问题。我在 Squirrel SQL 中链接到 h2 文件。但是,我必须从 H2 应用程序链接到 h2 文件......我为解决我的问题所做的是在 addpath.bat 文件中添加一行,使文件看起来像:

set TMP_CP=%TMP_CP%;%1
set TMP_CP=%TMP_CP%;"C:\Program Files (x86)\H2\bin\h2-1.4.181.jar"

然后我重新启动了 Squirrel SQL,一切都按预期工作!

【讨论】:

【参考方案3】:

我列出了添加驱动程序所遵循的确切步骤,即使 Colin Bell 已经给出了很好的答案,但没有遵循最后的步骤 4。我仍然无法让它工作。

    下载http://www.h2database.com/automated/h2-latest.jar并将其保存在某处,在我的情况下为~/drivers/h2-latest.jar 编辑现有的 h2 驱动程序。 在“额外类路径”选项卡上添加驱动程序 单击“列出驱动程序”-org.h2.Driver 应出现在“类名称”字段中(如 Colin 回答中的链接中所述:http://www.squirrelsql.org/screenshots/driver.html)

我错过了单击“列出驱动程序”的最后一步,因为在我尝试添加之前,“类名”中已经有 org.h2.Driver。但是如果没有这一步,它仍然会给出错误: Could not find class org.h2.Driver in neither the Java class path nor the Extra class path of the H2 driver definition: java.lang.ClassNotFoundException: org.h2.Driver

【讨论】:

以上是关于Windows 上的 Squirrel SQL & H2 插件:ClassNotFoundException: org.h2.Driver的主要内容,如果未能解决你的问题,请参考以下文章

Squirrel SQL - UCANACCESS_HOME 系统变量未定义

squirrel sql client 连接phoenix

SQuirreL 连接phoenix 安装配置

如何使用 Squirrel SQL 列出数据库中的所有表?

在 SQuirrel-sql 中调试 SQL 查询

使用 SQuirrel SQL 连接到 SQL Server