Class org.apache.derby.jdbc.clientdriver не найден, несмотря на то, что DerbyClient.jar находится в классе.JAVA

Программисты JAVA общаются здесь
Anonymous
Class org.apache.derby.jdbc.clientdriver не найден, несмотря на то, что DerbyClient.jar находится в классе.

Сообщение Anonymous »

Я запускаю это через код Visual Studio и получаю языковую поддержку Java (TM) от Redhat Extension. Код QuickStart, который я использую здесь. Я слегка изменил его, чтобы стать этим: < /p>

Код: Выделить всё

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSetMetaData;

public class Restaurants
{
private static String dbURL = "jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine";
private static String tableName = "restaurants";
// jdbc Connection
private static Connection conn = null;
private static Statement stmt = null;

public static void main(String[] args)
{
createConnection();
insertRestaurants(5, "LaVals", "Berkeley");
selectRestaurants();
shutdown();
}

private static void createConnection()
{
try
{
Class.forName("org.apache.derby.jdbc.ClientDriver"); //.newInstance();
//Get a connection
conn = DriverManager.getConnection(dbURL);
}
catch (Exception except)
{
except.printStackTrace();
}
}

private static void insertRestaurants(int id, String restName, String cityName)
{
try
{
stmt = conn.createStatement();
stmt.execute("insert into " + tableName + " values (" +
id + ",'" + restName + "','" + cityName +"')");
stmt.close();
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}

private static void selectRestaurants()
{
try
{
stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("select * from " + tableName);
ResultSetMetaData rsmd = results.getMetaData();
int numberCols = rsmd.getColumnCount();
for (int i=1; i class.forname ("org.apache .derby.jdbc.clientdriver "); //.newinstance();;;code>.
образное[code]star@platinum:~/Documents/Projects/Distributed Computing/DerbyTest/DerbyTest$  /usr/bin/env /usr/lib/jvm/java-21-openjdk-amd64/bin/java -XX:+ShowCodeDetailsInExceptionMessages -cp /home/star/Documents/Projects/Distributed\ Computing/DerbyTest/DerbyTest/bin Restaurants
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at Restaurants.createConnection(Restaurants.java:29)
at Restaurants.main(Restaurants.java:19)
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "Restaurants.conn" is null
at Restaurants.insertRestaurants(Restaurants.java:43)
at Restaurants.main(Restaurants.java:20)
< /code>
Из моего исследования существуют три возможных вопроса < /p>
[list]
[*] Уродство Dburl < /code> < /li>
derbyclient.jar
не в классе
[*]

Код: Выделить всё

derby.jar
не в классе
[/list]
Я предполагаю Сайт Apahce. Что касается 2 и 3, это моя классная точка :

Код: Выделить всё

/home/star/.local/bin/derby/lib/derbynet.jar:/home/star/.local/bin/derby/lib/derbyshared.jar:/home/star/.local/bin/derby/lib/derbyLocale_zh_CN.jar:/home/star/.local/bin/derby/lib/derbyLocale_pl.jar:/home/star/.local/bin/derby/lib/derbyLocale_pt_BR.jar:/home/star/.local/bin/derby/lib/derbyLocale_ja_JP.jar:/home/star/.local/bin/derby/lib/derbyoptionaltools.jar:/home/star/.local/bin/derby/lib/derbyrun.jar:/home/star/.local/bin/derby/lib/derbyLocale_de_DE.jar:/home/star/.local/bin/derby/lib/derbyLocale_ru.jar:/home/star/.local/bin/derby/lib/derbyLocale_es.jar:/home/star/.local/bin/derby/lib/derby.jar:/home/star/.local/bin/derby/lib/derbyLocale_it.jar:/home/star/.local/bin/derby/lib/derbyLocale_ko_KR.jar:/home/star/.local/bin/derby/lib/derbyLocale_fr.jar:/home/star/.local/bin/derby/lib/derbyclient.jar:/home/star/.local/bin/derby/lib/derbytools.jar:/home/star/.local/bin/derby/lib/derbyLocale_zh_TW.jar:/home/star/.local/bin/derby/lib/derbyLocale_cs.jar:/home/star/.local/bin/derby/lib/derbyLocale_hu.jar
Оба файла jar находятся в классе. Я не уверен, является ли это значительным, но переменная ClassPath установлена ​​внутри/и т. Д./Среда . Итак, я не уверен в проблеме, с которой я столкнулся. Я прошел через QuickStart Apache, создавая, вставляя и выбрав использование ij , поэтому я могу подтвердить, что ij работает правильно, как и SysInfo и т. Д. Итак, я совершенно уверен там не проблема с Дерби, а скорее конфигурация, но я не уверен в том, какие решения для меня широко распространены, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/794 ... -jar-being

Вернуться в «JAVA»