2015-01-22 1 views
0

SQLServer 데이터베이스에 연결하는 Java 응용 프로그램이 있는데 명령 줄에서 실행됩니다. jar 파일에도 Java 데이터베이스 드라이버가 없습니다.

<dependency> 
    <groupId>net.sourceforge.jtds</groupId> 
    <artifactId>jtds</artifactId> 
    <version>1.3.1</version> 
</dependency> 

내가 IntelliJ를 통해 프로그램을 실행

, 내가 문제없이 실행할 수 있어요 : 받는다는 종속성에서 나는 다음을 추가했습니다. 내가 사용하는 동일한 인수를 명령 줄에서 항아리를 실행하려고 할 때, 그러나

jar file expanded

: 내가 생성 된 jar 파일을 오픈을 깰 때, 나는 JTDS 드라이버를 볼 수 있습니다 인 IntelliJ 실행 구성에서, 나는 오류 얻을 :

Caused by: java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://databaseserver:1433/database 

내가 실행할 명령입니다

java -jar jarname.jar -cfg ../config.xml 

이 티 관련하지 않는 것 내가 Oracle 데이터베이스에 연결하고 대신 오라클 씬 드라이버 종속성을 포함하는 경우에도 동일한 문제가 발생합니다. (그러나 Postgres 드라이버 종속성을 추가하면, Postgres 드라이버 종속성을 추가하면 Postgres 데이터베이스에 연결하는 명령 줄에서 정상적으로 실행됩니다.)

수동으로 드라이버 jar (maven 종속성과 동일한 버전)를 클래스 패스에 추가하면 jar 파일이 제대로 실행됩니다.

항아리 안의 드라이버가 클래스 경로에 있지 않을 수 있습니다. (또는 문제를 일으킬 수있는 다른 것이 있습니까?)

+3

드라이버를 등록하셨습니까? – MadProgrammer

+0

@MadProgrammer 더 이상 그렇게하지 않아도됩니다. (최소한 드라이버가 [jdbc 4.0] (https://today.java.net/pub/a/today/2007/04/10/whats-new -in-jdbc-40.html # driver-and-connection-management) 이상). v4가 2007 년에 릴리스 된 이후로 나는 이것이 안전한 가정이라고 생각합니다. –

+0

@ElliottFrisch 다른 아이디어가 있습니까? 그들이 3 명의 운전자를 시험해보고, 단지 1 개의 운전자를 시험해 보는 이래로, 나의 추측은 그렇지 않다. .. – MadProgrammer

답변

0

위의 MadProgrammer의 의견이 문제였습니다. JDBC 4.0 드라이버가 아니라 JDBC 3.0 드라이버라는 것을 알았 기 때문에 드라이버를 등록하지 않았습니다.

관련 문제