2015-12-05 4 views
1

Моя программа была создана в Netbeans 8.0.2. Предполагается, что программа создаст (базу данных) папку после установки и извлечет содержимое файла базы данных (базы данных) из своей библиотеки. Папка создается совершенно нормально, но содержимое файла jar не извлекается. Как я могу получить извлечение файла jar для работы? NB: Когда я запускаю программу в Netbeans, все идет хорошо.Не удается извлечь файл jar в приложении java, упакованном для окон

Пример кода:

String appHomeDir = new java.io.File(".").getCanonicalPath(); 
    String destDir = appHomeDir + "/database"; 
    File folder = new File(destDir); 
    if (!folder.exists()) { 
    folder.mkdir(); 
    String current = new java.io.File(".").getCanonicalPath(); 
    String jarFile = current + "\\app\\lib\\database.jar"; 
    java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile); 
    java.util.Enumeration enumEntries = jar.entries(); 
    while (enumEntries.hasMoreElements()) { 
    java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries.nextElement(); 
    java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName()); 
    if (file.isDirectory()) { // if its a directory, create it 
    f.mkdir(); 
    continue; 
    } 
    java.io.InputStream is = jar.getInputStream(file); // get the input stream 
    java.io.FileOutputStream fos = new java.io.FileOutputStream(f); 
    while (is.available() > 0) { // write contents of 'is' to 'fos' 
    fos.write(is.read()); 
    } 
    fos.close(); 
    is.close(); 
    } 
    } 

Так каталог «база данных» будет создаваться, но содержание «database.jar» не извлекаются.

+0

Следите за рабочим непосредственно, откуда вы запустили приложение? – omer727

+0

@ omer727, у меня нет вашего вопроса. Вы имеете в виду рабочий каталог приложения? Если это так, выполняется от: c: \ users \ someuser \ AppData \ Local \ MySoftware. Я использую окна 7. –

ответ

1

Проблема решена: я заменил «/app/lib/database.jar» с «/lib/database.jar»