Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Не могу загрузить класс


Автор: djiva 6.9.2005, 13:40
Здраствуйте!


Загружаю драйвер вот так:
Код

URLClassLoader loader = URLClassLoader.newInstance( getClasspath() );
Class cls = loader.loadClass( drivername );
Driver drv = (Driver) cls.newInstance();


getClasspath() возвращает массив URL[]

Когда я указываю в путях jar архивы загрузчик начиает долго думать.
Но если разархивировать jarы и указть каталог то все проходить успешно.

URL получаю таким образом

Код

File tmpF = new File( driverPath );
URL[] paths = new URL[] { tmpF.toURL() };


Где driverPath - строка

В качестве driverPath уже пробовал и так
Код

"file://"+userDir+"\\drivers\\sqlServer\\msutil.jar"

и так
Код

userDir+"\\drivers\\sqlServer\\msutil.jar"

где
Код

String userDir = System.getProperty("user.dir");


Помогите пожалуйста. В чем моя ошибка.


Автор: batigoal 6.9.2005, 14:17
А точно есть необходимость в таких сложностях? Нельзя ли воспользоваться более тривиальным вариантом?
Код

Class.forName("org.mssql.Driver");
db = DriverManager.getConnection(url, usr, pwd);

(при этом, разумеется, jar с драйвером должен быть прописан в classpath)

Автор: djiva 6.9.2005, 15:17
А если мне нужно коннектится к разным субд такой метод сработает?
Как DriverLoader будет знать какой из драйверов использовать?

Автор: batigoal 6.9.2005, 16:32
Ну, на то он и менеджер smile
Это можно делать вручную, но обычно такого приема достаточно.

Об альтенативном способе можно почитать здесь:
http://java.sun.com/developer/onlineTraining/Database/JDBC20Intro/JDBC20.html#JDBC202_2

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)