Ответ 1
1) Загрузите Драйвер JDBC здесь.
2) разархивируйте файл и перейдите в sqljdbc_version\fra\auth\x86 или \x64
3) скопируйте sqljdbc_auth.dll в C:\Program Files\Java\jre_Version\bin
4) Наконец перезапустите eclipse
У меня есть веб-приложение Java EE, которое подключается к экземпляру SQL Server 2008. У меня нет проблем с подключением и извлечением ко всем моим таблицам, за исключением одного из них. Ошибка в журнале Tomcat:
ПРЕДУПРЕЖДЕНИЕ: Не удалось загрузить причину sqljdbc_auth.dll: - no sqljdbc_auth в java.library.path
1) Загрузите Драйвер JDBC здесь.
2) разархивируйте файл и перейдите в sqljdbc_version\fra\auth\x86 или \x64
3) скопируйте sqljdbc_auth.dll в C:\Program Files\Java\jre_Version\bin
4) Наконец перезапустите eclipse
Вот шаги, если вы хотите сделать это из Eclipse:
1) Создайте папку "sqlauth" на диске C: и скопируйте файл dll sqljdbc_auth.dll в папку
1) Перейти в Run> Run Configuration
2) Выберите вкладку " Аргументы " для вашего класса
3) Добавьте приведенный ниже код в аргументы VM:
-Djava.library.path="C:\\sqlauth"
4) Нажмите "Применить" и нажмите "Выполнить"
Не стесняйтесь попробовать другие методы.
Ошибка ясна, не так ли?
Вы не добавили путь, где присутствует sqljdbc_auth.dll. Узнайте в системе, в которой находится DLL, и добавьте ее в свой путь к классам.
И если это также не сработает, добавьте папку, в которой находится DLL (я предполагаю \Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu\auth\x86) вашей переменной PATH.
Опять же, если вы проходите через ant или cmd, вы должны явно указать путь, используя -Djava.library.path = [путь к MS_SQL_AUTH_DLL]
Для простого исправления выполните следующие действия:
Я только что столкнулся с той же проблемой, но в моем собственном приложении. Мне не понравилось решение с копированием dll, так как это не очень удобно, поэтому я провел некоторое исследование и придумал следующее программное решение.
В принципе, перед выполнением любых подключений к SQL-серверу вам нужно добавить sqljdbc_auth.dll
в путь.., что легко сказать:
PathHelper.appendToPath("C:\\sqljdbc_6.2\\enu\\auth\\x64");
как только вы это сделаете:
import java.lang.reflect.Field;
public class PathHelper {
public static void appendToPath(String dir){
String path = System.getProperty("java.library.path");
path = dir + ";" + path;
System.setProperty("java.library.path", path);
try {
final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
sysPathsField.setAccessible(true);
sysPathsField.set(null, null);
}
catch (Exception ex){
throw new RuntimeException(ex);
}
}
}
Теперь аутентификация интеграции работает как шарм:).
Кредиты на fooobar.com/questions/74037/..., чтобы я мог понять это.
Чтобы решить, я сделал следующее:
sqljdbc_auth.dll
в sqljdbc_auth.dll
: C:\Windows\System32