在eclipse java项目中加载dll文件

我正在尝试将文件sqljdbc_auth.dll添加到项目库中。 我将包含dll的文件夹添加为外部类文件夹。

在这里,我基本上尝试使用Microsoft提供的SQL驱动程序连接到我的SQL SERVER 2008数据库。

我的代码是

 private static void Connect(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String connectionUrl = "jdbc:hostname:1433;databaseName=dbname;" + "user=username;password=password"; java.sql.Connection con = DriverManager.getConnection(connectionUrl); } catch(ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e2) { e2.printStackTrace(); } }` 

我收到以下错误

 WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in java.library.path com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:b83147c7-b45a-4f35-b601-195a0aa9c32c at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667) at com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:60) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.sagar.com.package1.T1.Connect(T1.java:21) at com.sagar.com.package1.T1.main(T1.java:37) Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth 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 com.microsoft.sqlserver.jdbc.AuthenticationJNI.(AuthenticationJNI.java:35) ... 13 more 

如果要在Eclipse内部使用DLL,则需要将DLL包含在系统PATH上的某个位置,或者需要在Eclipse的运行配置中显式指定java.library.path属性。

另一种选择是将类似的东西添加到项目主类的VM参数中:

 -Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64" 

(指定sqljdbc_auth.dll文件的路径)。 无需更改环境PATH或Eclipse IDE jvm参数。

对于项目的主类,选择菜单选项Run As >> Run Configurations... 运行配置......

在Windows平台上,Java.library.path默认为PATH环境变量。 简单的解决方案是将DLL复制到您的路径(例如windows / system32)并重启eclipse。 此类型的DLL类型必须与Java版本匹配,即如果您使用的是32位Java,则应使用32位DLL