정말 여기 미스테리가 있습니다. 이클립스에서 Java 프로그램을 만들고 JDBC 연결을 만들었다.JDBC 연결은 IDE (Eclipse)에서 작동하지만 .jar 파일에서는 작동하지 않습니다.
import java.sql.*;
public class Login {
public static void main(String[] args) {
try {
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection connection = DriverManager
.getConnection("jdbc:sqlserver://localhost;databaseName=testdb; integratedSecurity=true;");
//adding port 1433 doesn't make a difference
System.out.println("Connection successful");
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("select * from testtable");
while (rs.next()) {
line = rs.getString(2);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
나는 이클립스를 실행 해요, 모든 게 잘 : 코드는 다음과 같다. 데이터베이스와 테이블이 양호하고 라이브러리 및 인증이 Java 빌드 경로으로 설정되어 있고 내가 원하는 결과, 즉 "Hello World"가 선택된 테이블의 문자열입니다.
그러나 실행 가능한 JAR 파일을 만들고 실행하면 "이 드라이버는 통합 인증"으로 예외가 발생합니다. 심지어 연결되지도 않으므로 데이터베이스에 오류가 있어도이 시점에서는 문제가되지 않습니다.
사실 더 혼란 스럽습니다. 몇 주 일찍, 실행 가능한 JAR 파일도 만들었습니다.
OS : 윈도우 비스타 홈 프리미엄 86
JDBC 드라이버 위치 : "C : \ sqljdbc_4.0 \ ENU \ sqljdbc4.jar"
네이티브 라이브러리 위치 : "C : \ sqljdbc_4.0 \ ENU \ 인증 \ 86 "
Java 버전 : 자바 7 업데이트 17, JDK 7 업데이트 (17)
이전 버전에서는 Update 21을 사용했지만 드라이버가 이유인지 점검하기 위해 다시 변경되었습니다.
그래서 어떤 제안이 필요합니까? 나는 매우 감사 할 것입니다!
"java.library.path"시스템 속성을 sqljdbc_auth.dll의 위치로 설정 했습니까? – happymeal
* "SSCCE가되기를 바랍니다"* - 다른 사람들이 문제를 재현 할 수 있습니까? 그렇지 않은 경우 SSCCE가 아닙니다. –
병을 어떻게 실행합니까? –