2013-09-05 3 views
0

코드에서 Connector/J JDBC 드라이버를 사용하는 데 문제가 있습니다.클래스 경로에 실행 파일 만 포함되어 있습니다.

필자가 작성한 코드는 DriverManager.getConnection()이 드라이버를로드하는 데 사용되기 전에 Class.forName("com.mysql.jdbc.Driver").newInstance()을 사용하여 클래스를로드합니다.

결과적으로 com.mydql.jdbc.Driver에 대해 ClassNotFoundException이 발생합니다. MySQL 커넥터 용 이진 JAR 파일 mysql-connector-java-5.1.26-bin.jar이 있습니다.

내 코드는 Netbeans을 사용하여 JAR 파일로 패키지됩니다. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

프로그램 만 인쇄 MyJarFile.jar의 시작 부분에 System.out.println(System.getProperty("java.class.path")); 추가 :

내가이 예외를 제공

java -classpath "/path/to/mysql-connector-java-5.1.26-bin.jar" -jar MyJarFile.jar 

다음 사용하고있는 코드를 실행합니다.

내보내기를 사용하여 jar 파일을 CLASSPATH 변수에 추가하고 -classpath 플래그의 마지막 부분을 lib/*으로 설정했지만 동일한 결과를 얻으려고했습니다.

대신 .class 파일에서 프로그램을 실행 해 보았습니다. 메인 클래스를 찾지 못하거나로드 할 수 없다는 불평을했습니다. 와일드 카드가 클래스 경로에 사용되고 MyJarFile.jar이 그 위치에있는 경우에만 실행됩니다. 그것은 드라이버의 로딩에서 단순히 걸릴 것입니다.

어떤 일이 벌어지고 있는지에 대해 생각해 본 사람이 있습니까?

답변

0

-cp와 -jar 옵션을 함께 사용하지 않는 시도,이 작동 될 수 있습니다 창

에 대한 * nix에서 스크립트에 대한

java -cp "mysql-connector-java-5.1.26-bin.jar:MyJarFile.jar" my.package.Main 

또는

java -cp "mysql-connector-java-5.1.26-bin.jar;MyJarFile.jar" my.package.Main 

my.package.Main는 메인 클래스입니다 .

+0

터미널에서 프로그램을로드 할 때 작동합니다. 이제'DriverManager.getConnection()'에서 왜 멈출까요? 감사! –