Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > JDBC+PgSQL+Gentoo


Автор: Vitaly83 25.9.2007, 20:54
ОС: Linux Gentoo
Утановлено:
PgSQL 8.2.4
JDBC-Postgresql 8.2
ant (полностью)

Не получается загрузить драйвер.
Вылетает на
Код
Class.forName("org.postgresql.Driver");


Что нужно прописать и где?

Нужно просто получить данные из базы.

Автор: Tony 25.9.2007, 23:28
Код

Вылетает на

А 4то вылетает? Летать может многое  smile. stack trace в студию.

Автор: Vasay 26.9.2007, 00:50
Это J2EE или J2SE?
Файл коннектор в нужное место положил?

Автор: Alexandr87 26.9.2007, 06:33
В CLASSPATH путь до jar прописали?

echo $CLASSPATH
export CLASSPATH=$CLASSPATH:/opt/jlibs/...(путь до jar)

Автор: Vitaly83 26.9.2007, 07:49
2 Tony
Цитата

А 4то вылетает? Летать может многое  smile. stack trace в студию.

Вылетал с ClassNotFoundException из блока try

2 Vasay
Цитата

Это J2EE или J2SE?
Файл коннектор в нужное место положил?

С этим труднее. С Java занимаюсь пару недель, да и то когда бывает время.
Просто нужно было дописать одну прогу. Сейчас они хавает данные с stdin'а. Нужно сделать, чтобы она обращалась напрямую в базу.
Короче, установлен вроде J2SE. Что за файл коннектор я не понял. Можно подробнее.
Может и не столь важно, но ещё установлено
jdk-1.4.2.03 (использую)
есть и
jdk-1.5.0.11

2 Alexandr87
Цитата

В CLASSPATH путь до jar прописали?

echo $CLASSPATH
export CLASSPATH=$CLASSPATH:/opt/jlibs/...(путь до jar)

делал
export "CLASSPATH=/usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar:${CLASSPATH}"
так же сделан export для переменных
JAVA_HOME - папка, куда установлена прога
JAVACMD - путь к бинарнику (java)
ANT_HOME - куда установлен ant
в PATH добавлено и bin ANT'а

Автор: Vasay 26.9.2007, 10:52
Тебе нужен драйвер коннектор к бд. Взять можно здесь: http://jdbc.postgresql.org/

И положить его в CLASSPATH (обычно кладут в ./jdk/lib/ext)


Удачи!

Автор: Vitaly83 26.9.2007, 13:01
Я же писал:

export "CLASSPATH=/usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar:${CLASSPATH}"

jdbc-postgresql.jar - это он. Путь к нему прописан в CLASSPATH.

Но драйвер так и не видит. Может что ещё прописать?
http://forum.vingrad.ru/html/emoticons/pack/dash1.gif

Автор: Vasay 26.9.2007, 13:49
Сори, не заметил.

Попробуй, положить его в ./jdk/lib/ext

И посмотри, что у тебя с правами на этот файл.

Автор: Vitaly83 26.9.2007, 14:57
Цитата

Попробуй, положить его в ./jdk/lib/ext


Не совсем понял, где это именно.
С какой папки начинается эта ветвь (./)?
Хотя это не имеет значения. Месторасположение файла я указываю. Без разницы где.

Цитата

И посмотри, что у тебя с правами на этот файл.


Права:
Владелец: чтение/запись
Остальные: чтение

Этого вполне достаточно. Доступ к файлу есть.

Автор: Vitaly83 26.9.2007, 16:52
И ещё, только обратил внимание:
он использует не org.postgresql.Driver, java.sql.Driver
Не знаю, на сколько это важно, но упомянуть стоит.

Автор: Vasay 26.9.2007, 21:43
Цитата

он использует не org.postgresql.Driver, java.sql.Driver


Кто использует?

Цитата

Не совсем понял, где это именно.
С какой папки начинается эта ветвь (./)?


с той папки, где у тебя лежит jdk... т.е. папка с jdk и в ней /lib/ext

Почему прошу сделать это - так на всякий случай, чтоб убедится что не в CLASSPATH проблема.

после этого, такой код должен заработать....
Код

        try {
            Class.forName("org.postgresql.Driver").newInstance();
        } catch (Exception ex) {
            System.out.println("error! jdbc - load.");
        }


если не заработал, то ты, видать используешь не то jdk в который положил драйвер (ты раньше писал что он у тебя не один.)

Автор: Vitaly83 27.9.2007, 09:54
Понятно.
Не заработало.
Т.о. получается, что используется не тот драйвер.
Ладно где прописывать?

Автор: Vasay 27.9.2007, 10:43
Цитата

не тот драйвер

При таком вызове использоваться не может

Опиши по пунктам, что делаешь, как запускаешь программу.

Единственное, что мне еще приходит в голову - что драйвер скомпилен под более старшую версию jre.


п.с. когда я писал про "/lib/ext" я имел ввиду не jdk а jre - в случае с jdk, jre лежит в папке с jdk, т.е. путь должен быть таким: [папка с jdk]/jre/lib/ext

Автор: Vitaly83 27.9.2007, 13:55
Цитата

Опиши по пунктам, что делаешь, как запускаешь программу.


Установлено:
/opt/blackdown-jdk-1.4.2.03
/usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar

в папке jdk в ./jre/lib/ext сделан симлинк на jar файл

программу запускаю так:
java -jar TestDB.jar

Вот код:
Код

        try {
            // Here we load the JDBC driver.
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("Unable to load driver!");
            return;
        }

на этот код: Class.forName("org.postgresql.Driver").newInstance();
он выдавал ошибку при компиляции.
не знал такой функции newInstance

На счёт других jdk (не я устанавливал, просто были в образе) в папке /opt/sun-jdk-1.5.0.11.

В /usr/share/java-config-2/vm два файла для обоих версий.

Автор: Vasay 27.9.2007, 15:54
Так, давай ка попробуем воспользоваться SUN jdk, лучше всего скачай последнюю версию с java.sun.com. 

Вполне возможно blackdown-jdk бинарно не совместим с тем jdk которым компилили драйвер (а компилили думаю SUN-новским)

что выдает java -version?

Автор: Vitaly83 28.9.2007, 06:37
$ java -version
Цитата

java version "1.5.0_11"
Java™ 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot™ Client VM (build 1.5.0_11-b03, mixed mode)

М-да, ожидал другого результата.
Это sun'овский jdk.

Автор: Alexandr87 28.9.2007, 07:31
оффтоп
Vitaly83,   - для переключения между установленными джавками - man java-config

Автор: Vitaly83 28.9.2007, 10:27
ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Всего-то файл поместил JAR в /jre/lib/ext  (спасибо Vasay)   java, используемого по-умолчанию.
Просто, когда я писал прогу для телефона, то использовал blackdown, а по-умолчанию у меня был sun. Вот и все проблемы.

smile  smile 

Автор: Alexandr87 28.9.2007, 10:51
значица CLASSPATH прописывали неправильно.

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