У меня есть настольное Java-приложение Windows, которое было создано в Eclipse с использованием Java 1.5 JRE в качестве компилятора и драйверов Oracle OCI для одновременного взаимодействия с несколькими базами данных. Моя система работает под управлением клиента Oracle 11g. Я новичок в Java, поэтому недавно узнал, что не рекомендуется устанавливать необходимые драйверы Oracle OCI по пути% JAVA_HOME% \ lib \ ext. Моя программа работала правильно до того дня, когда я удалил драйвер ojdbc5.jar из папки% JAVA_HOME% \ lib \ ext.
Теперь, несмотря на добавление ojdbc5.jar к моему пути сборки в проекте в Eclipse, мое приложение выдает следующее сообщение:
Исключительная ситуация в потоке "pool-1-thread-1" java.lang.UnsatisfiedLinkError: t2cCreateState
в oracle.jdbc.driver.T2CConnection.t2cCreateState (собственный метод)
в oracle.jdbc.driver.T2CConnection.logon (T2CConnection.java:338)
в oracle.jdbc.driver.PhysicalConnection. (PhysicalConnection.java:490)
в oracle.jdbc.driver.T2CConnection. (T2CConnection.java:133)
в oracle.jdbc.driver.T2CDriverExtension.getConnection (T2CDriverExtension.java:53)
в oracle.jdbc.driver.OracleDriver.connect (OracleDriver.java:465)
в java.sql.DriverManager.getConnection (Неизвестный источник)
в java.sql.DriverManager.getConnection (Неизвестный источник)
в pkgPasswordChamp.Password_Champ.getConnection (Password_Champ.java:555)
в pkgPasswordChamp.Password_Champ.executeStatement (Password_Champ.java:635)
в pkgPasswordChamp.Password_Champ.loginToMarket (Password_Champ.java:678)
в pkgPasswordChamp.Password_Champ.access $ 0 (Password_Champ.java:663)
в pkgPasswordChamp.Password_Champ $ currentMarket.run (Password_Champ.java:753)
в java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (Неизвестный источник)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник)
at java.lang.Thread.run (неизвестный источник)
До сих пор я пытался изменить системную переменную пути Windows XP и системную переменную Classpath Windows XP. Кажется, что каждая переменная содержит ссылку на необходимые папки и файлы.
Путь: C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0;% ORACLE_HOME% \ bin;% JAVA_HOME% \ bin;% ORACLE_HOME% \ bin \ ocijdbc11.dll;
Classpath:.; C: \ Program.; C: \ Program Files \ QuickTime \ QTSystem \ QTJava.zip;.;.; C: \ PROGRA ~ 1 \ JMF21 ~ 1.1E \ lib \ sound.jar; C : \ PROGRA ~ 1 \ JMF21 ~ 1.1E \ Lib \ файлу jmf.jar; C: \ PROGRA ~ 1 \ JMF21 ~ 1.1E \ Lib;% SystemRoot% \ Java \ классы;% ORACLE_HOME% \ JDBC \ Lib \ ojdbc5.jar ;.
Другие форумы считают, что ошибка java.lang.UnsatisfiedLinkError: t2cCreateState означает, что DLL, связанная с драйвером Oracle, отсутствует. Я попытался добавить файлы oci.dll и ocijdbc11.dll в путь сборки в Eclipse, но все еще получал ту же ошибку.
Может кто-нибудь объяснить, почему выдается «java.lang.UnsatisfiedLinkError: t2cCreateState» и какие шаги я могу предпринять, чтобы устранить ошибку?
Для меня загадка, почему приложение работает нормально только с ojdbc5.jar в папке% JAVA_HOME% \ lib \ ext, но завершается ошибкой, когда ojdbc5.jar удаляется и помещается в сборку Путь приложения. Любая помощь для этого новичка будет принята с благодарностью!