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


Автор: Hvoin 12.6.2008, 01:03
У меня WindowsXP, Oracle 9i, Eclipse SDK 3.2.1, jdk1.6.0_02
Записываю в Свойства Системы->Дополнительно->Переменнные среды->Системные переменные
Имя переменной: ClassPath
Значение: .;D:\oracle\ora90\jdbc\lib\classes12.jar;
D:\oracle\ora90\jdbc\lib\classes111.jar;
D:\oracle\ora90\jdbc\lib\nls_charset12.jar;
D:\oracle\ora90\jdbc\lib\ocrs12.jar
ПК перегрузил
После
Код


import java.sql.*;
public class jdbc {
    public static void main(String[] args) {
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
}}

Пишет ошибку:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    oracle cannot be resolved to a type
    at com.jdbc.main(jdbc.java:11)

Автор: Hvoin 12.6.2008, 16:10
On Win95/Win98/NT:
  - Add [ORACLE_HOME]\jdbc\lib\classes111.zip and
    [ORACLE_HOME]\jdbc\lib\nls_charset11.zip to your CLASSPATH.
    (Add classes12.zip and nls_charset12.zip if JDK 1.2.x is used.)
  - Make sure [ORACLE_HOME]\bin is in your PATH.

Вот так написано в документации, так и делаю...в чём же ошибка?

Автор: ivg 12.6.2008, 17:43
eclipse -> правой кнопкой на проекте -> в контекстном меню: Build Path>Add External Archives -> выбираете файл (скачайте последние версии с сайта, обычно это ojdbc14.jar, но в последней мажорной версии, также ojdbc5.jar, ojdbc6.jar, как я понимаю соответственно версиям JVM, у вас jdk1.6.0_02 должен любой подойти).

Автор: Hvoin 12.6.2008, 18:32
подключал по очереди:
ojdbc14.jar, ojdbc5.jar, ojdbc6.jar
Пробовал делать так
Код

Class.fоrName("oracle.jdbc.driver.OracleDriver"); 
        Connection conn = DriverManager.getConnection
        ("jdbc:oracle:oci8:@test", "miller", "kolobok");

Ошибка
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method fоrName(String) is undefined for the type Class
    oracle.jdbc.driver.OracleDriver.OracleDriver cannot be resolved to a type

    at com.jdbc.main(jdbc.java:19)

Автор: ivg 12.6.2008, 18:44
eclipse -> правой кнопкой на проекте -> в контекстном меню: Build Path>Configure Build Path -> вкладка Libraries. Перечислите что у вас там написано.

Добавлено через 8 минут и 43 секунды
Цитата(Hvoin @  12.6.2008,  21:32 Найти цитируемый пост)
Class.fоrName("oracle.jdbc.driver.OracleDriver");

руская буква - исправьте на англ.
А у вас ошибки компиляции eclipse не подчёркивает?

Автор: Hvoin 12.6.2008, 19:03
Код

Class.forName("oracle.jdbc.driver.OracleDriver");

исправил, но все равно та же ошибка
в бд с Oracle, вхожу нормально Экземпляр: Test  Схема: Miller Пароль: Kolobok

Цитата

eclipse -> правой кнопкой на проекте -> в контекстном меню: Build Path>Configure Build Path -> вкладка Libraries. Перечислите что у вас там написано.


jre1.6.0_02;
ojdbc14.jar, пробовал вместо ojdbc14.jar ставить classes12.jar, ojddc5.jar, ojdbc6.jar

Автор: ivg 12.6.2008, 19:09
Цитата(Hvoin @  12.6.2008,  22:03 Найти цитируемый пост)
но все равно та же ошибка

Какая? До этого были разные:
Цитата(Hvoin @  12.6.2008,  04:03 Найти цитируемый пост)
oracle cannot be resolved to a type

Цитата(Hvoin @  12.6.2008,  21:32 Найти цитируемый пост)
The method fоrName(String) is undefined for the type Class

добавьте
Код

public static void main(String[] args) throws Exception {


Цитата(ivg @  12.6.2008,  21:44 Найти цитируемый пост)
А у вас ошибки компиляции eclipse не подчёркивает?


Автор: Hvoin 12.6.2008, 19:25
Добавил
Код

public static void main(String[] args)throws Exception {
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      Connection conn = DriverManager.getConnection
        ("jdbc:oracle:oci8:@test", "miller", "kolobok");
    }}

Ошибок нет

Если такой код
Код

DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver.OracleDriver());
       Connection conn = DriverManager.getConnection
        ("jdbc:oracle:oci8:@test", "miller", "kolobok");

то подчеркивает красным new oracle.jdbc.driver.OracleDriver.OracleDriver()
и выдает ошибку
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    oracle.jdbc.driver.OracleDriver.OracleDriver cannot be resolved to a type
    at qwe.qwe.main(qwe.java:19)

Автор: ivg 12.6.2008, 19:36
Давайте полный текст класса.

Добавлено через 2 минуты и 2 секунды
Цитата(Hvoin @  12.6.2008,  22:25 Найти цитируемый пост)
oracle.jdbc.driver.OracleDriver.OracleDriver cannot be resolved to a type

Правильный вариант: oracle.jdbc.OracleDriver

Автор: Hvoin 12.6.2008, 19:51
Цитата

Правильный вариант: oracle.jdbc.OracleDriver


с этим заработало
Код

import java.sql.Connection;
import java.sql.DriverManager;

public class qwe {
    public static void main(String[] args)throws Exception {
    DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
            Connection conn = DriverManager.getConnection
             ("jdbc:oracle:thin:@localhost:1521:test", "miller", "kolobok");
    }}

Ошибок нет, вот только если я пытаюсь подключиться через OCI
Код

import java.sql.Connection;
import java.sql.DriverManager;

public class qwe {
        public static void main(String[] args)throws Exception {
        DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
        Connection conn = DriverManager.getConnection(
        "jdbc:oracle:oci:@test","miller", "kolobok");
}}

Ошибка



Автор: ivg 12.6.2008, 19:54
Цитата(Hvoin @  12.6.2008,  22:51 Найти цитируемый пост)
с этим заработало

Поздравляю.  smile
Цитата(Hvoin @  12.6.2008,  22:51 Найти цитируемый пост)
вот только если я пытаюсь подключиться через OCI
Ошибка

Какая?

Автор: Hvoin 12.6.2008, 19:56
Код

Exception in thread "main" java.lang.UnsatisfiedLinkError: no ocijdbc10 in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3013)
    at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:228)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:361)
    at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:142)
    at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:79)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:595)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at qwe.qwe.main(qwe.java:24)

Автор: ivg 12.6.2008, 20:08
oci драйверу нужны нативные библиотеки, которые он не может загрузить. Их тоже можно скачать с сайта и установить. Я предлагаю вам остановиться на thin драйвере и поработать с ним. Где то на сайте оракла я читал, что он ничем практически не уступает oci по производительности. Ну а с точки зрения Java, thin-драйвер предпочтительней.

Автор: Hvoin 12.6.2008, 20:14
весь день седня с jdbc маялся, спасибо большое

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