2012-11-21 1 views
0

jTDS (MS SQL Server 2008)로 응용 프로그램을 만들려고했습니다.단일 JAR에서 jTDS 및 내 프로젝트 내보내기?

  • 은 항아리와
  • 에 추가하여 Eclipse에서 빌드 경로를 구성 프로젝트 폴더
  • 에 드라이버를 붙여 최신 jTDS를 드라이버 (1.3.0) 다운로드 : 그래서 나는 다음과 같은 짓을 Order and Export 탭을 선택하고 모든 항목을 선택했습니다.

그런 다음 jar 파일을 내 보냅니다. 그것이 실행 가능한 항아리가 아니기 때문에, 나는 나중에 그것을 시험했고 그것은 나의 운전자 (java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver)를 찾지 못하는 것 같습니다.

내가에만이 뭔가를 실행하여 이클립스에서 테스트 할 때 :

public static void main(String[] args) {} 
    String classForName = "net.sourceforge.jtds.jdbc.Driver"; 

    try 
    { 
     // embedding driver for sql connection 
     Class.forName(classForName); 

     con = java.sql.DriverManager.getConnection(getConnectionUrl(), user, pass); 
     if (con != null) 
     { 
      JOptionPane.showMessageDialog(null, "Connection Successful!"); 
     } 

    } 
    catch (Exception e) 
    { 
     Log.writeStackTrace(e); 
    } 
} 

은 .. 그 다음 마법처럼 작동합니다. 그래서 제 생각에는 문제는 jTDS jar를 포함시키는 것 같습니다. 내가 뭐 놓친 거 없니?

+0

코드는 어디에 실행되며 패키지는 어떻게 구성됩니까? 웹 응용 프로그램이나 데스크탑입니까? – Zutty

+0

데스크톱 응용 프로그램이므로 로컬로 일종의 API로 실행됩니다. –

+0

@Zutty 나는 그것을 이해했다! 비어있는'public static void main' 메소드를 생성하고 jar 파일을 실행 파일로 내 보내면 모든 외부 jar 파일을 하나로 압축합니다. 이 walkaround없이 외부 항아리와 수출을위한 솔루션이 없다면 궁금 무엇입니까? –

답변

0

젠장, 나 약간 너무 늦었 어!

표준 Java 클래스 로더는 JAR 내에서 JAR 중첩을 지원하지 않습니다. JAR을 함께 결합하거나 (One of Jar) (http://one-jar.sourceforge.net/)와 같이 더 정교한 클래스 로더를 사용할 수 있습니다.

+0

hehe :) 도움을 받으려는 시도와 One-Jar 제안에 대해 답변을 표시합니다.) –