Java与JavaDB的通信classNotFoundException

时间:2015-03-11 17:19:15

标签: java apache derby classnotfoundexception javadb

我正在尝试创建一个可以与JavaDB通信的Java程序。我已经创建了Database类,启动了一个服务器并创建了一个小客户端程序来检查它们是否可以进行通信。

当我尝试运行它时,程序崩溃,在我尝试设置数据库驱动程序的行中给出了一个类未找到异常。我google了它,发现如果在类路径中找不到derbyclient.jar和derby.jar,则会出现此错误。我还读到在db目录中找到的脚本setNetworkClientCP和setNetworkServerCP将在类路径中设置它们。我找到了脚本,运行它们并检查以确保类路径得到更新,但我仍然得到相同的错误。有谁知道问题可能是什么?

编辑:已解决 - 我刚刚意识到我需要在NetBeans项目库中包含derbyclient.jar。

1 个答案:

答案 0 :(得分:1)

我正在使用NetBeans和内置的JavaDB。我使用上面提到的脚本设置了类路径,并在检查类路径时找到了这些条目:

  1. %DERBY_INSTALL%\ lib中\ derbyclient.jar中;
  2. %DERBY_INSTALL%\ lib中\的derby.jar;
  3. %DERBY_INSTALL%\ lib中\ derbytools.jar;
  4. %DERBY_INSTALL%\ lib中\ derbynet.jar;
  5. 错误:

    java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:260)
    at Database.<init>(Database.java:14)
    at TestKlient.main(TestKlient.java:8)