Основных части Кодекса:
(Взято из примера из книги: Java Программирование 10-й изда, Автор: Paul Deitel Харви Дейтель (р 1063).):Нет подходящего драйвера найден для JDBC: дерби: <db-name> ошибки JDBC с Java DB на Linux/Ubuntu
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DisplayAuthors
{
public static void main(String args[])
{
final String DATABASE_URL = "jdbc:derby:books";
try (
Connection connection =
DriverManager.getConnection(DATABASE_URL, "user", "pass");
)
{
// ...
}
catch (SQLException sqlException)
{
sqlException.printStackTrace();
}
}
}
Я на Ubuntu 16,04
Хотя сайт Java для Java DB говорит дб включен в JDK, я узнал после нескольких часов веб ищет, что openJDK java, рекомендуется установить на Ubuntu, не поставляется с java db.
The website, что было, что полезную информацию предложил запустить:
sudo apt-get install sun-javadb-client sun-javadb-core
который произвел ошибку и не были установлены.
Поэтому я загрузил jdk-8u111-linux-x64.tar.gz, извлеченный в соответствии с инструкциями, и просто чтобы быть в безопасности (я считаю, что я мог бы просто установить JAVA_HOME, DERBY_HOME в извлеченное местоположение и который сделал " работал над «до ij-частями» (см. ниже)), удалил все из моего/usr/lib/jvm/java-8-openjdk-amd64/и заменил содержимое того, что я загрузил.
И добавил это в моем .bashrc:
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
DERBY_HOME=/usr/lib/jvm/java-8-openjdk-amd64/db
export DERBY_HOME
Поступил в терминале для создания базы данных и вставки данных, как указано в книге:
$JAVA_HOME/db/bin/ij
connect 'jdbc:derby:books;create=true;user=usr;password=pass';
run 'book-basic-table-create-and-insertions.sql';
exit;
Это создает файл книги с БД информации +/данных внутри него.
В ./ есть также файл с именем derby.log, который содержит следующие информацию:
----------------------------------------------------------------
Wed Dec 14 19:01:58 EST 2016:
Booting Derby version The Apache Software Foundation - Apache Derby - 10.11.1.2 - (1629631): instance a816c00e-0158-ffc9-1471-000006d047c8
on database directory /tmp/deleteme-IuI/books with class loader [email protected]
Loaded from file:/usr/lib/jvm/java-8-openjdk-amd64/db/lib/derby.jar
java.vendor=Oracle Corporation
java.runtime.version=1.8.0_111-b14
user.dir=/tmp/deleteme-IuI
os.name=Linux
os.arch=amd64
os.version=4.4.0-53-generic
derby.system.home=null
Database Class Loader started - derby.database.classpath=''
----------------------------------------------------------------
Wed Dec 14 19:04:25 EST 2016: Shutting down Derby engine
----------------------------------------------------------------
Wed Dec 14 19:04:27 EST 2016:
Shutting down instance a816c00e-0158-ffc9-1471-000006d047c8 on database directory /tmp/deleteme-IuI/books with class loader [email protected]
----------------------------------------------------------------
Составитель и побежал:
javac DisplayAuthors.java # compiles without error
java DisplayAuthors
выходы программы:
java.sql.SQLException: No suitable driver found for jdbc:derby:books
at java.sql.DriverManager.getConnection(DriverManagerager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.javaava:247)
at DisplayAuthors.main(DisplayAuthors.java:15)
Как заставить программу работать?
*/USR/Библиотека/JVM/Java-8-OpenJDK-amd64/дб/Библиотека/derby.jar * (плюс другие) должны быть в вас classpath –
Вы можете использовать Eclipses, другую IDE или проект Maven, чтобы более легко получить зависимости вашего драйвера базы данных. –
@ScaryWombat Я попытался: 'java DisplayAuthors -cp/usr/lib/jvm/java-8-openjdk-amd64/db/lib/derby.jar', который произвел ту же ошибку. –