2

MS SQL Server 2008 にデータベースがある VM vare で Windows Server 2003 を使用しています。jdbc ドライバーを使用して Java コードをデータベースに接続すると、次の例外が発生します。親切に解決策を教えてください。

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecGenClientContext([B[I[BI[B[I[ZLjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/logging/Logger;)I
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecGenClientContext(Native Method)
    at com.microsoft.sqlserver.jdbc.AuthenticationJNI.GenerateClientContext(AuthenticationJNI.java:80)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2691)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
    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 test.jdbcdemo.main(jdbcdemo.java:24)
4

3 に答える 3

1

を有効にしましintegratedSecurityた。これはsqljdbc_auth.dll、jvm のライブラリ パス上にある必要があることを意味します。

ほとんどの場合、パスにこのライブラリがありません。間違ったバージョンまたは間違ったバリアント (x86 <> x64 <> IA64) です。

于 2012-06-18T15:01:50.657 に答える
0

古い質問ですが、今日この問題がありました。Java について最初に知ったことはありませんが、私にとっての修正は、Microsoft の JDBC ドライバーを Java の ext フォルダーにコピーすることでした。

sqljdbc41.jar を C:\[Java インストールへのパス]\Java\jre7\lib\ext\ にコピーする必要があります。

正しいバージョン (x86 または x64) を選択してください。

また、統合セキュリティのために、アプリケーションの起動時に auth への参照を作成する必要がありました。

-Djava.library.path=C:\[Path to Microsoft JDBC Driver 4.1 for SQLServer]\sqljdbc_4.1\enu\auth\x86
于 2015-05-01T08:06:47.913 に答える