2016-10-14 68 views
0

過去幾天,我一直試圖讓我的Derby數據庫在我的jar文件中被訪問。這裏是我的連接類的樣子:將嵌入式數據庫轉換爲Jar文件

import java.sql.Connection; 
import java.sql.DriverManager; 

import javax.swing.JOptionPane; 

public class DBConnection 
{ 
    public static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; 
    public static final String JDBC_URL = "jdbc:derby:EmployeeInfo"; 
    public static Connection dbConnector() 
    { 
     try 
     { 
      Class.forName(DRIVER).newInstance(); 
      Connection conn = DriverManager.getConnection(JDBC_URL); 
      JOptionPane.showMessageDialog(null, "Connection successfull"); 
      return conn; 
     }catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null, e); 
      return null; 
     } 
    } 
} 

而且,這裏是一個什麼我的項目資源管理器看起來像一個截圖:當我在日食 Note that the database jar file is my apache derby database

一切正常,我的程序運行正常使用我的GUI更新數據庫。但是,一分鐘我做我的程序一個jar文件它說它找不到我的數據庫EmployeeInfo(注意:Database.jar是EmployeeInfo數據庫)。最後一件事,當我在另一臺機器上嘗試jar文件時,它也聲明它找不到數據庫。

爲什麼這是與任何修復一起探討將是偉大的! -Thanks, Aaron :)

+0

所有.jar文件條目應視爲只讀。如果要修改條目,請將其複製到臨時文件並修改該文件。 – VGR

+0

當你說臨時文件時,這意味着什麼? – Aaron

+1

如果您只需要修改的數據庫用於程序的單次運行,則可以將數據庫從Class.getResourceAsStream複製到使用Files.createTempFile創建的文件中。如果您需要對數據庫所做的更改是永久性的(以便後續運行的程序可以讀取它們),請爲該文件選擇一個一致的位置,如System.getProperty(「user.home」)。 – VGR

回答

0

那麼我最終發現修復:)。我必須將嵌入式德比數據庫文件與德比罐一起放入一個文件夾中,並且我的jar文件包含我的項目,並且所有內容都很精美!