2013-03-30 2 views
3

Я потратил довольно много времени на чтение предыдущих сообщений, но никто из них, похоже, мне не помогает. Я пытаюсь запустить простое приложение Java с NetBeans, вот простейший код:ОШИБКА: Не найдено подходящего драйвера для jdbc: derby: CoffeeDB; create = true

final String DB_URL = "jdbc:derby:CoffeeDB;create=true";   
try 
    { 
    // Create a connection to the database. 
    Connection conn = DriverManager.getConnection(DB_URL); 

    // If the DB already exists, drop the tables. 
    dropTables(conn); 

    // Build the Coffee table. 
    buildCoffeeTable(conn); 

    // Close the connection. 
    conn.close(); 
    } 
    catch (Exception ex) 
    { 
    System.out.println("ERROR: " + ex.getMessage()); 
    } 

Обычно это переменные среды, вызывающие проблемы, но я проверил, что и они, кажется, настроены правильно:

CLASSPATH: C: \ Program Files \ Java \ jdk1.7.0_17 \ дб \ Lib \ derby.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ дб \ Lib \ derbytools.jar;

DERBY_HOME C: \ Program Files \ Java \ jdk1.7.0_17 \ дб

PATH: (только в части, касающейся JDBC) C: \ Program Files \ Java \ jdk1.7.0_17 \ дб \ Bin

Я уже создал таблицу, используя ij из командной строки, и это сработало, когда я пытаюсь запустить ее через Netbeans, когда я получу эту ошибку. Что-то интересное, хотя, когда я запускаю sysinfo из командной строки, он выглядит следующим образом:

------------------ Информация о Java ----- -------------

Java Версия: 1.7.0_17

Java Производитель: Корпорация Oracle

Java дома: C: \ Program Files \ Java \ jre7

Java classpath: C: \ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derby.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ db \ lib \ derbytools.jar; C: \ Программа Fi les \ Java \ jdk1.7.0_17 \ db/lib/derby.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ db/lib/derbynet.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ дб/Библиотека/derbyclient.jar; C: \ Program Files \ Java \ jdk1.7.0_17 \ дб/Библиотека/derbytools.jar

название ОС: Windows Vista

OS архитектура: amd64

Версия ОС: 6.0

---> Как вы можете видеть, какая-то дополнительная информация добавляется к предыдущему пути к классам, а derbytools.jar и derby.jar появляются дважды? в сочетании с перевернутыми косыми чертами ???

При отладке через NetBeans, исключение происходит из этой строки в файле DriverManager.java:

Connection con = aDriver.driver.connect(url, info);  <--------------- here 
    if (con != null) { 
      // Success! 
      println("getConnection returning " + aDriver.driver.getClass().getName()); 
      return (con); 
    } 

URL-адрес является правильным: JDBC: дерби: CoffeeDB, создать = верно, но соединение возвращается нуль и выдает SQLexception. Есть идеи?

ответ

2

Сообщение об исключении «Не найдено подходящего драйвера для ...» означает, что ни один из загруженных драйверов JDBC не принял URL-адрес. Это делает очень вероятным, что драйвер JDBC просто не включен в путь к классам приложения

Переменная окружения CLASSPATH почти всегда игнорируется при запуске Java-приложения из среды IDE и всегда, если выполняется из исполняемой банки , Убедитесь, что путь сборки в среде IDE содержит дерби.jar, или если он является исполняемым банком, то он указан в META-INF/manifest.mf в атрибуте Class-Path.

+0

СПАСИБО !!! Ты был прав! Путь к классу не был даже сообразительным при работе с IDE, я изменил путь сборки (Menu - Run - Set Project Configuration) и добавил библиотеку derby.jar, и она работала !!! – user2226035