web-dev-qa-db-fra.com

dll manquant dans JDBC

Je travaille actuellement avec SQL en Java . Récemment, j'ai eu cette erreur:

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

Cela se produit lorsque j'ajoute le paramètre integratedSecurity=true; dans la connexion String . Le message d'erreur indique clairement que sqljdbc_auth.dll est manquant, j'ai donc essayé de placer la dll dans le même chemin que je garde sqljdbc4.jar.

Cependant, cela ne fonctionne pas, donc je voulais savoir comment je pouvais réellement ajouter cette dll à mon chemin de construction? Y a-t-il un moyen spécial de le faire?

17
muffin

Très bien les gars, je l'ai découvert!

C'est la meilleure réponse que j'ai pu trouver: https://stackoverflow.com/a/958074/2000342

Cela fonctionne maintenant, merci pour le soutien!

10
muffin

gardez sqljdbc_auth.dll dans votre dossier windows/system32 et cela fonctionnera. Téléchargez le pilote sqljdbc depuis ce lien link décompressez-le et vous trouverez sqljdbc_auth.dll.Maintenant conservez le sqljdbc_auth.dll dans le dossier system32 et exécutez votre programme

33
SpringLearner

Pour corriger facilement, suivez ces étapes:

  1. goto: https://docs.Microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url#Connectingintégrated
  2. Téléchargez le fichier JDBC et extrayez-le à l'emplacement de votre choix
  3. ouvrez le dossier d'authentification correspondant à votre système d'exploitation x64 ou x86
  4. copier le fichier sqljdbc_auth.dll 
  5. coller dans: C:\Program Files\Java\jdk_version\bin

redémarrer soit Eclipse ou Netbeans

4
jfindley

Vous devez définir une propriété système -D appelée Java.library.path qui pointe vers le répertoire contenant le sqljdbc_auth.dll.

4
Nick Holt

Définissez Java.library.path dans un répertoire contenant cette DLL que Java utilise pour rechercher les bibliothèques natives. Spécifiez le commutateur -D sur la ligne de commande

Java -Djava.library.path = C:\Java\natif\libs VotreProgramme

C:\Java\native\libs doit contenir sqljdbc_auth.dll

Regardez ce SO post si vous utilisez Eclipse ou sur ce blog si vous souhaitez définir par programme.

3
Mr Spark

Si c'est le cas du fichier dll manquant, vous pouvez télécharger le fichier dll à partir de ce lien http://en.osdn.jp/projects/sfnet_dose-grok/downloads/sqljdbc_auth.dll/

sinon, vous devez fournir le nom d'utilisateur et le mot de passe de la base de données à laquelle vous essayez de vous connecter, et définir l'authentification sur false

2
Anoop M L

Amis J'ai eu le même problème à cause de la version de bit différente Assurez-vous que le point suivant * Votre jdk bit 64 ou 32 * Votre chemin pour sqljdbc_4.0\enu\auth\x64 ou x86 dépend de ce répertoire sur votre jdk bit * sqljdbc_auth.dll sélectionnez ce fichier en fonction de votre bit x64 ou x86 et mettez-le dans le dossier system32 et cela fonctionnera pour moi

0
Praganesh Patel

Vous devez vous assurer que votre DLL est dans le chemin de classe.

Une des façons de le faire est de définir le chemin d'accès à la variable d'environnement DLL dans PATH.

Une autre option consiste à l'ajouter aux arguments VM de la variable LD_LIBRARY_PATH, comme suit:

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

0
Mubin

Sqljdbc_auth.dll se trouve dans le dossier sqljdbc_x.x que vous installez pour récupérer le fichier sqljdbcxx.jar dans le dossier auth. Créez un dossier lib à la base de votre projet scala et déplacez sqljdbc_auth.dll dans ce dossier. Cela garantit que vous obtenez le bon fichier, par exemple. 64 bits ou 32 bits qui correspond à votre fichier sqljdbcxx.jar.

0
Chad Crowe