2017-07-10 26 views
1

SQL ServerデータベースにJavaプログラムを接続しようとしています。なぜ "no sqljdbc_auth in java.library.path"が続くのですか

私はWindows 7マシンで作業しています。私のEclipseは私の会社のネットワーク上のLinuxマシン上にあり、SQL ServerはWindows認証を要求しています。

私のプロジェクトの場所にドライバsqljdbc41.jarをコピーして貼り付けました(Eclipseでは、プロジェクトを右クリックし、プロパティと場所を参照してください)。 同じ場所にsqljdbc_auth.dllも貼り付けました。 私はこのポスト下記の「ネイティブライブラリの場所にこの.dllへのパスを追加しようとしました:。https://stackoverflow.com/a/958074/7812989 しかし、私はまだ、このエラーを持っている:

package sqlconnectiontest; 

    import java.sql.*; 

    public class SqlSelection { 

     /** 
     * @param args 
     */ 
     public static void main(String[] args) { 
      try 
      { 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

       String userName = "myUser"; 
       String password = "myPassword"; 
       String url = "jdbc:sqlserver://fr0-iaascls-190.eu.company.corp:10001;databaseName=MYDATABASE;integratedSecurity=true;"; 
       Connection con = DriverManager.getConnection(url, userName, password);  
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 

     } 
    } 

Jul 10, 2017 10:52:35 AM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit> 
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:39389d4c-36cd-459f-b9f8-15d3cf422b34 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2397) 
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:68) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3132) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123) 
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) 
    at java.sql.DriverManager.getConnection(DriverManager.java:571) 
    at java.sql.DriverManager.getConnection(DriverManager.java:215) 
    at sqlconnectiontest.SqlSelection.main(SqlSelection.java:19) 
Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1878) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:849) 
    at java.lang.System.loadLibrary(System.java:1087) 
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:41) 
    ... 13 more 

私のコードは次のようです

は、あなたが助けてくださいことのアイデアをお持ちですか?ありがとう:)

答えて

3

をアプリケーションがの間違ったアーキテクチャ(x86のx64のVS)バージョンを使用しようとしている場合は、このエラーメッセージを得ることができます10。他のアーキテクチャへのディレクトリパスを指定してみてください。

x64マシンでx64を実行しているが、使用しているJVMがx86バージョンである場合は、sqljdbc_auth.dllのx86バージョンを指定して使用する必要があります。

+0

ありがとうございました!それは動作します、私は前にそれに注意を払っていませんでした... – LaPalme

+0

@LaPalme、よろしくです! ;) –

+0

私はちょうど詳細を追加するために戻ってきます。実際には私のWindowsマシンにインストールしたEclipseで動作しますが、私が話していたEclipseを使用しているときは、会社のネットワーク上のLinuxマシンでは、sqljdbc_auth.dllの良いバージョンでもまだ動作しません。だから、私のWindowsマシンにEclipseがあるので、問題は解決します。 – LaPalme

関連する問題