2016-11-24 2 views
0

안녕하세요. 안녕하세요. Netbeans 플랫폼을 사용하여 Java 응용 프로그램을 개발했습니다.이 응용 프로그램에는 hsqldb가 내장 데이터베이스로 포함되어 있다고 가정합니다. hsqldb.jar을 패키지와 데이터베이스로 사용하기 위해 wrapped 라이브러리로로드합니다. 따라서이 프로젝트에서 라이브러리는 {nbm_module_name} \ release \ modules \ ext에 저장되며 배포 파일에는 {app_name} \ modules \ ext에 있습니다.netbeans 플랫폼에 타사 라이브러리를 나열하는 방법

내가 원하는 것은 런타임에이 jar에 액세스하여 데이터베이스로 사용하는 올바른 방법입니다.

netbeans 플랫폼이없는 간단한 Java 응용 프로그램에서 아래 코드가 작동합니다. 하지만 래핑 된 라이브러리는 표준 java.class.path에 포함되어 있지 않으므로 netbeans 플랫폼에는 사용할 수 없습니다. 리소스로 라이브러리를 사용하려고하지만 작동하지 않습니다 및 같은 병 (리소스 및 라이브러리) 두 번로드 할 가정 해요이 방법을 좋아하지 않아. 도움 주셔서 대단히 감사합니다.

String[] strs = System.getProperty("java.class.path").split(";"); 
    String dbUrl = ""; 
    for(String str : strs){ 
     if(str.contains("hsql")) 
      dbUrl = str; 
    } 

     Connection connection = null; 
     ResultSet resultset = null; 
     Statement statement = null; 

     Class.forName("org.hsqldb.jdbcDriver"); 
     connection = DriverManager.getConnection("jdbc:hsqldb:file:"+dbUrl, "sa", ""); 

답변

0

감사합니다. 해결책은 다음과 같습니다. 모든 외부 jar는 "module"폴더의 "ext"디렉토리에 있습니다. 그리고 내가 찾고있는 것은 고유 이름으로 "hsqldb"가있는 jar "hsqldb.jar"입니다.

File file = InstalledFileLocator.getDefault().locate("modules/ext", "hsqldb", false);      

문자열 dbUrl = file.getAbsolutePath() + "/ hsqldb.jar";

관련 문제