Netbeans和H2数据库的ClassNotFoundException

时间:2012-02-25 19:24:28

标签: database netbeans classpath database-connection h2

所以我按照H2 Documentation页面上的教程使用了“使用JDBC连接到数据库”方法连接到数据库。我首先将h2 - * .jar文件添加到Lib文件夹(通过Netbeans)并使用以下内容建立与我之前创建的数据库的连接。

 Class.forName("org.h2.Driver");
 connection = DriverManager.getConnection("jdbc:h2:~/" + DatabaseName);

结果在IDE环境中工作,但是当我尝试直接从jar可执行文件运行应用程序时,我收到以下错误:

 java.lang.ClassNotFoundException: org.h2.Driver ...

在Class.forName()类加载器中发生此错误。所以我做了一点环顾四周,发现这是一个突出的问题。人们使用的一个解决方案是从当前线程中提取类Loader,如下所示:

 Thread t = Thread.currentThread();
 ClassLoader cl = t.getContextClassLoader();
 cl.getClass().getClassLoader();
 Class toRun = cl.loadClass("org.h2.Driver");

不幸的是,这似乎仍然会导致同样的错误,所以我想知道我做错了什么。我应该做些什么来确保驱动程序在类路径中吗?我不知道如果是这样的话。

谢谢!

1 个答案:

答案 0 :(得分:0)

运行应用程序时需要add the h2-*.jar file to the classpath,例如使用

java -cp h2*.jar -jar yourApp.jar
相关问题