복붙노트

[SQL] 에서 java.lang.UnsatisfiedLinkError : java.library.path에는 sqljdbc_auth 없다

SQL

에서 java.lang.UnsatisfiedLinkError : java.library.path에는 sqljdbc_auth 없다

내 자바 응용 프로그램의 .JAR을 만든거야, 그리고 난 cmd를으로부터의 .jar를 실행하려고하고있을 때, 나는 오류가 발생합니다.

내가 검색하고 많은 사례를 찾았지만 아무도 작품은 나에게 없다했습니다. 여기보고 있지만 오류의 연속처럼 디렉토리 '있는 sqljdbc_auth.dll'에 java.library.path를 설정합니다.

http://www.linglom.com/images/howto/netbeans/sqlserver/part3/8.png

"내 DLL 경로"이 제공 자바 -Djava.library.path = 나는 명령을 내 자바 응용 프로그램을 실행합니다 :

PS C:\Users\User> java -Djava.library.path="C:\Users\User\Desktop\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc
_4.0\ptb\auth\x64"
Error: Could not find or load main class .library.path=C:\Users\User\Desktop\Microsoft JDBC Driver 4.0 for SQL Server
\sqljdbc_4.0\ptb\auth\x64

이 문제를 해결하는 방법 정말 더 해달라고하지 않습니다. 나는 많은 시간을 검색했습니다,하지만 아무것도 작동하지 않습니다. 누군가의 도움이 저를 바랍니다.

감사

 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 integrat
ectionId:0481a2ee-4ac4-4fd3-89cd-58aad1696fe4
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.j
        at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:60)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServe
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnect
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnecti
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.jav
        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.database.Conection.getConexao(Conection.java:41)
        at test.forms.jTLogin.<init>(jTLogin.java:71)
        at test.forms.jTLogin$4.run(jTLogin.java:448)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$400(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
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.<clinit>(AuthenticationJNI.java:3
        ... 28 more

해결법

  1. ==============================

    1.이 작업있어 ...

    이 작업있어 ...

    1) .DLL 추가 및 Java / JDK / bin에 .JAR

    2) 응용 프로그램에서의 .jar 추가 / lib에

    3) 창에서 .DLL 추가 / system32를

    "경로"시스템 환경에서 자바 / JDK ../ 빈 및 Windows / system32를 추가합니다.

  2. ==============================

    2.좌절의 전체 아침 후, 나는 마침내 그것을 작업 가지고, 내가 할 필요가 모든 @ user3320956의 첫 번째 제안의 일부였다.

    좌절의 전체 아침 후, 나는 마침내 그것을 작업 가지고, 내가 할 필요가 모든 @ user3320956의 첫 번째 제안의 일부였다.

    나는 (내 경우 C에서 : \ 프로그램 파일 \ 자바 \ jdk1.7.0_79 \ 빈) 내 JDK \ bin 디렉토리에있는 sqljdbc_auth.dll을 추가하고 내 CLASSPATH에있는 유일한 일이있다

    C:\Program Files\Microsoft JDBC Driver 4.1 for SQL Server\sqljdbc_4.1\enu\sqljdbc41.jar 
    

    그 후, 한 나는 내 수업이 문을 사용할 수 있었다 -cp 또는 -classpath 변수를 사용하지 않은 것처럼 :

    import com.microsoft.sqlserver.jdbc.*;
    

    원격 데이터베이스에 연결합니다. 여기 내 연결 문자열은 (물론, 당신이 반드시 서버가 TCP / IP 연결 등을 허용하도록 설정이되어 있는지 확인, 권한이 있는지 확인, SERVERNAME 및 DBNAME 교체)입니다 :

    jdbc:sqlserver://SERVERNAME;database=DBNAME;integratedSecurity=true;authenticationScheme=NativeAuthentication;
    

    HTH!

    건배,

    마태 복음

  3. ==============================

    3.필요하지 않은 경우 "통합 보안"당신은 URL에 매개 변수를 해제 할 수 있습니다 :

    필요하지 않은 경우 "통합 보안"당신은 URL에 매개 변수를 해제 할 수 있습니다 :

    integratedSecurity=false;
    

    이것은 일부 생산 환경 아마도 개발을위한 미세하지만해야합니다.

  4. ==============================

    4.나는 영업 이익과 동일한 문제가 발생했다,하지만 난 user3320956의 반응에 따라 해결할 수 없었다.

    나는 영업 이익과 동일한 문제가 발생했다,하지만 난 user3320956의 반응에 따라 해결할 수 없었다.

    내가 IntelliJ에 아이디어를 사용하고, 그리고 난 내가 .JAR을 생성되는 방법을 변경하여이 문제를 해결 할 수 것으로 나타났습니다. 은 "대상 JAR에 추출물은"방법은 내가 이전에 사용 무엇이고 나에게 OP 설명 똑같은 문제를했다. 항아리를 생성하지 "나는 더 이상 오류 수신하고"오류를 때 이후 방법 "매니페스트를 통해 출력 디렉토리와 연결하려고 복사"에이 방법을 변경 : "찾거나 메인 클래스를로드 할 수 없습니다.

    사람들이 몇 두통이 내 상황에 갇혀 저장 희망이 도움이!

  5. from https://stackoverflow.com/questions/23949890/java-lang-unsatisfiedlinkerror-no-sqljdbc-auth-in-java-library-path by cc-by-sa and MIT license