it-swarm.com.de

dLL fehlt in JDBC

Ich arbeite derzeit mit SQL in Java . Kürzlich habe ich folgende Fehlermeldung erhalten:

com.Microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in Java.library.path

Dies geschieht, wenn ich den Parameter integratedSecurity=true; in die Verbindungszeichenfolge .. eingebe. Die Fehlermeldung besagt eindeutig, dass die Datei sqljdbc_auth.dll fehlt. Ich habe versucht, die DLL in den gleichen Pfad zu setzen, in dem ich sqljdbc4.jar verwende.

Dies funktioniert jedoch nicht, also wollte ich wissen, wie ich diese DLL meinem Buildpfad hinzufügen kann? Gibt es eine spezielle Möglichkeit, dies zu tun?

17
muffin

Okay Jungs, ich habe es herausgefunden! __. Ich brauchte nicht wirklich den Java.library.path zu ändern, sondern den "Native Library Location" von sqljdbc.jar

Dies ist die beste Antwort, die ich finden konnte: https://stackoverflow.com/a/958074/2000342

Es funktioniert jetzt, danke für die Unterstützung!

10
muffin

bewahren Sie sqljdbc_auth.dll in Ihrem Windows/system32-Ordner auf, und es wird funktionieren. Laden Sie den sqljdbc-Treiber von diesem link Entpacken Sie ihn und Sie finden sqljdbc_auth.dll. Behalten Sie jetzt den sqljdbc_auth.dll im system32-Ordner und führen Sie Ihr Programm aus

33
SpringLearner

Um das Problem zu beheben, folgen Sie diesen Schritten:

  1. goto: https://docs.Microsoft.com/de-de/sql/connect/jdbc/building-the-connection-url#Connectingintegrated
  2. Laden Sie die JDBC-Datei herunter und extrahieren Sie sie an Ihrem bevorzugten Speicherort
  3. Öffnen Sie den Auth-Ordner, der Ihrem OS x64 oder x86 entspricht
  4. kopieren Sie die Datei sqljdbc_auth.dll 
  5. einfügen in: C:\Programme\Java\jdk_version\bin

starten Sie entweder Eclipse oder Netbeans neu

4
jfindley

Sie müssen eine -D-Systemeigenschaft namens Java.library.path festlegen, die auf das Verzeichnis zeigt, das den sqljdbc_auth.dll enthält.

4
Nick Holt

Legen Sie Java.library.path auf ein Verzeichnis fest, das dieses DLL enthält, das Java verwendet, um native Bibliotheken zu finden. Geben Sie in der Befehlszeile den Schalter -D an

Java -Djava.library.path = C:\Java\native\libs Ihr Programm

C:\Java\native\libs sollte sqljdbc_auth.dll enthalten

Sehen Sie sich diesen SO post an, wenn Sie Eclipse verwenden, oder bei dieses Blog , wenn Sie programmgesteuert festlegen möchten.

3
Mr Spark

Wenn die dll-Datei fehlt, können Sie die dll-Datei von diesem Link herunterladen http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/

andernfalls müssen Sie den Benutzernamen und das Kennwort der Datenbank angeben, die Sie verbinden möchten, und die Authentifizierung als "false" festlegen

2
Anoop M L

Freunde Ich hatte das gleiche Problem wegen der unterschiedlichen Bit-Version Stellen Sie sicher, dass folgender Punkt * Ihr jdk-Bit 64 oder 32 * Ihr Pfad für sqljdbc_4.0\enu\auth\x64 oder x86 dieses Verzeichnis ist Wählen Sie auf Ihrem jdk-Bit * sqljdbc_auth.dll diese Datei basierend auf Ihrem Bit x64 oder x86 aus, und legen Sie diese im system32-Ordner ab. Dies funktioniert für mich

0
Praganesh Patel

Sie müssen sicherstellen, dass sich Ihre DLL im Klassenpfad befindet.

Eine Möglichkeit, dies zu tun, besteht darin, den Pfad zu DLL in der Umgebungsvariablen PATH anzugeben.

Eine andere Option ist das Hinzufügen zu den VM - Argumenten in der Variablen LD_LIBRARY_PATH wie folgt:

Java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass

0
Mubin

Die Datei sqljdbc_auth.dll befindet sich im Ordner sqljdbc_x.x, den Sie installieren, um die Datei sqljdbcxx.jar im Ordner auth abzurufen. Erstellen Sie einen lib-Ordner an der Basis Ihres Scala-Projekts, und verschieben Sie die Datei sqljdbc_auth.dll in diesen Ordner. Dadurch wird sichergestellt, dass Sie die richtige Datei erhalten, z. 64 Bit oder 32 Bit, die Ihrer Datei sqljdbcxx.jar entsprechen.

0
Chad Crowe