我有一个连接到SQL Server 2008实例在Java EE Web应用程序。 我没有连接和检索到我所有的表格,除了其中一人有任何问题。 在Tomcat日志中的错误是:
警告:无法加载sqljdbc_auth.dll原因: - 在没有的java.library.path sqljdbc_auth
我有一个连接到SQL Server 2008实例在Java EE Web应用程序。 我没有连接和检索到我所有的表格,除了其中一人有任何问题。 在Tomcat日志中的错误是:
警告:无法加载sqljdbc_auth.dll原因: - 在没有的java.library.path sqljdbc_auth
1)下载的JDBC驱动程序 在这里 。
2)解压缩文件,然后进入sqljdbc_version \ FRA \权威性\ x86或\ 64
3)sqljdbc_auth.dll复制到C:\ Program Files文件\的Java \ jre_Version \ BIN
4)最后重新启动蚀
下面是步骤,如果你想从Eclipse中做到这一点:
1)在C创建一个文件夹“sqlauth”:开车,DLL文件sqljdbc_auth.dll复制到文件夹
1)转到运行>运行配置
2)选择您的类“ 参数 ”标签
3)在VM参数添加下面的代码:
-Djava.library.path="C:\\sqlauth"
4)点击“应用”,然后单击“运行”
随意尝试其他方法 。
该错误是明显的,不是吗?
你还没有加入其中sqljdbc_auth.dll存在的路径。 在系统所在的DLL是找出并添加到类路径。
如果这也不起作用,添加的文件夹,其中DLL存在(我假设\ Microsoft SQL Server的JDBC驱动程序3.0 \ sqljdbc_3.0 \ ENU \权威性\ 86)到PATH环境变量。
再次,如果您是通过蚂蚁会或在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);
}
}
}
如今的集成身份验证的工作就像一个魅力:)。
学分https://stackoverflow.com/a/21730111/1734640让我摸不着头脑。
要解决我做了以下内容:
sqljdbc_auth.dll
进入目录: C:\Windows\System32