Связь Java с classNotFoundException JavaDB

Я пытаюсь создать программу Java, которая может взаимодействовать с JavaDB. Я создал класс базы данных, запустил сервер и сделал крошечную клиентскую программу, чтобы проверить, будут ли они взаимодействовать.

Программа вылетает, когда я пытаюсь ее запустить, выдавая исключение class not found в строке, где я пытаюсь установить драйвер базы данных. Я погуглил и обнаружил, что эта ошибка появляется, если derbyclient.jar и derby.jar не найдены в пути к классам. Я также читал, что сценарии setNetworkClientCP и setNetworkServerCP, найденные в каталоге db, устанавливают их в пути к классам. Я нашел сценарии, запустил их и проверил, обновлен ли путь к классам, но все равно получаю ту же ошибку. Кто-нибудь знает, в чем может быть проблема?

РЕДАКТИРОВАТЬ: РЕШЕНО - я только что понял, что мне нужно включить derbyclient.jar в библиотеку проекта NetBeans.


person User892313    schedule 11.03.2015    source источник
comment
Используете ли вы какую-либо IDE для запуска своего кода? Как вы устанавливаете путь к классам? Кроме того, пожалуйста, вставьте полученную вами ошибку (трассировку).   -  person Aninda Bhattacharyya    schedule 11.03.2015


Ответы (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;

Ошибка:

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)
person User892313    schedule 11.03.2015