2011-02-11 5 views
2

글쎄 2 .jar 파일이 있습니다. 주 jar 파일은 내 전체 프로젝트의 jar 파일이고 다른 .jar 파일은 MySql JDBC 커넥터입니다.Java에서 2 개의 jar 파일을 사용하는 데 도움이 필요합니다.

글쎄 기본적으로 지금 일어나고있는 일은 내가 프로젝트를 빌드 할 때 NetBeans를 빌드 할 때 MyJDBC JDBC Connector .jar 파일이 주 jar 파일 안에 있다는 것입니다.

NetBeans 내에서 프로젝트를 실행하고있을 때 MySql JDBC 드라이버는 내가 가지고있는 src/com/game/mysql 폴더에서 찾을 수 있습니다. 그러나 프로젝트를 빌드 할 때 Java 응용 프로그램은 그 디렉토리를 찾을 수 없습니다. 메인 jar 파일 내의 JDBC 드라이버

WinRar로 기본 jar 파일을 열면 JDBC jar 파일이 여전히/com/game/mysql/폴더에 있다는 것을 알 수 있습니다. 그런데 왜 Java 응용 프로그램에 액세스 할 수 없습니까?

중첩 된 .jar 파일이 Java에서 지원되지 않는다고 들었습니다. 그래서 이것이 사실 일지 모르겠지만 생각할 수 있습니다. 응용 프로그램이 기본 jar 파일에서 JDBC .jar 파일을 찾을 수 있도록 할 수있는 방법이 있습니까?

또한 NetBeans에서 프로젝트 -> 등록 정보 -> 라이브러리 -> 폴더/Jar 추가를 클릭하여 .jar 파일을 추가하는 작업을 수행했습니다. NetBeans가 작동하지만 App 빌드가 아닌 것은 작동합니다.

답변

0

나는 중첩 된 jar 파일이 주 JAR 내부에 자식 JAR로 패키지 된 JAR 파일의 클래스는 기본적으로 참으로 자바

더 정확한에서 지원되지 않습니다 들었습니다 메인 JAR의 클래스에는 보이지 않습니다. 2 개 느슨한 항아리

  1. 선박 응용 프로그램 : your.jarmysql.jar하고 your.jarMANIFEST.MF 파일의 Class-Path 항목에 mysql.jar의 상대 경로를 정의

    당신은 기본적으로 2 가지 옵션이 있습니다.

    Class-Path: mysql.jar 
    

    같은 폴더에 모두 JAR 파일을 넣어 java -jar your.jar에 의해 your.jar을 실행

    은, 그것은 작동합니다.

  2. mysql.jar의 모든 느슨한 클래스를 your.jar 안에 리 패키징하거나 포함 된 JAR 클래스를 미리로드하는 특수 클래스 로더를 추가하십시오. Netbeans을하지 않기 때문에, Netbeans을 지원하는지 여부와 지원하는 방법을 말할 수 없습니다. 그러나 Eclipse에서는 이것이 가능합니다. this answer도 참조하십시오.

관련 문제