dll відсутній у JDBC

В даний час я працюю з SQL у Java. Нещодавно я отримав цю помилку:

com.microsoft.sqlserver.jdbc.AuthenticationJNI 
WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path

Це трапляється, коли я додаю параметр integratedSecurity = true; у рядку з'єднання. У повідомленні про помилку чітко сказано, що відсутній файл sqljdbc_auth.dll, тому я намагався встановити dll на той самий шлях, як я зберігаю sqljdbc4.jar.

Однак це не працює, тому я хотів би знати, як я насправді можу додати цей DLL до мого шляху створення? Чи є особливий спосіб зробити це?

15
Вам необхідно додати шлях до DLL у власність Windows PATH
додано Автор JIV, джерело

9 Відповіді

keep sqljdbc_auth.dll in your windows/system32 folder and it will work.Download sqljdbc driver from this link Unzip it and you will find sqljdbc_auth.dll.Now keep the sqljdbc_auth.dll inside system32 folder and run your program

32
додано
Це працює як чарівність і 1/2.
додано Автор Teoman shipahi, джерело
Ну, це було просто перебільшенням. Любіть, він працював на 100% і 50% на вершині і всього 150% :)
додано Автор Teoman shipahi, джерело
Я радий відповіддю допомагав тобі. Що ви маєте на увазі 1/2?
додано Автор SpringLearner, джерело
@rkkreddy Я радий, моя відповідь допомогла вам
додано Автор SpringLearner, джерело
Працював як диво.
додано Автор rkkreddy, джерело

Добре хлопці, я знайшов це! Мені дійсно не потрібно змінювати java.library.path, але "Місцева бібліотека розташування" sqljdbc.jar

This is the best answer I could find: https://stackoverflow.com/a/958074/2000342

Він працює зараз, дякую за підтримку!

9
додано

Вам потрібно встановити властивість -D, яка називається java.library.path , що вказує на каталог, що містить sqljdbc_auth.dll .

4
додано
Не могли б ви бути більш конкретними? Я не знаю, як це зробити
додано Автор muffin, джерело

Встановіть java.library.path до каталогу, що містить цю бібліотеку DLL, яку Java використовує для пошуку власних бібліотек. Вкажіть перемикач -D у командному рядку

java -Djava.library.path = C: \ Java \ native \ libs YourProgram

C: \ Java \ native \ libs повинен містити sqljdbc_auth.dll

Подивіться на це SO post , якщо ви використовуєте Eclipse або цей блог , якщо ви хочете встановити програмним шляхом.

3
додано
Дякую! Опис на вершині не дуже чіткий, я вважаю, що ви трохи редагуєте його. У свою чергу, ваша посилання на stackoverflow.com/questions/957700/ … мені дуже допоміг! Саме тут я знайшов відповідь на мою проблему
додано Автор muffin, джерело

Для легкого виправлення виконайте такі дії:

  1. goto: https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url#Connectingintegrated
  2. Download the JDBC file and extract to your preferred location
  3. open the auth folder matching your OS x64 or x86
  4. copy sqljdbc_auth.dll file
  5. paste in: C:\Program Files\Java\jdk_version\bin

перезапустити або затемнення, або netbeans

3
додано

If its the case of the dll file missing you can download the dll file from this link http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/

ще потрібно вказати ім'я користувача та пароль db, який ви намагаєтеся з'єднати, і зробити автентифікацію помилковою

2
додано

Sqljdbc_auth.dll знаходиться в папці sqljdbc_x.x, яку ви встановили, щоб отримати файл sqljdbcxx.jar у папці auth. Створіть папку lib на базі вашого проекту scala і перемістіть sqljdbc_auth.dll у цю папку. Це гарантує, що ви отримуєте правильний файл, наприклад, 64 біт або 32 біт, що відповідає вашому файлу sqljdbcxx.jar.

0
додано

Ви повинні переконатися, що ваша бібліотека DLL знаходиться в шляху classpath.

Один із способів це зробити - це поставити шлях до DLL в змінну середовища PATH.

Інший варіант полягає в тому, щоб додати його до аргументів VM у змінній LD_LIBRARY_PATH, як це:

java -Djava.library.path =/path/to/my/dll -cp/my/classpath/goes/here MainClass

0
додано

У друзів я мав ту ж проблему через різну бітну версію Переконайтеся в наступному пункті * Ваш jdk біт 64 або 32 * Ваш шлях до sqljdbc_4.0 \ enu \ auth \ x64 або x86 цього каталогу залежить від вашого біт jdk * sqljdbc_auth.dll виділіть цей файл на основі біт x64 або x86 і поставте його в папку system32, і вона буде працювати для мене

0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників