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的主要内容,如果未能解决你的问题,请参考以下文章