2014-05-19 500 views
0

在調試中,我發現當運行由NetBeans 8.0編譯的可執行文件.jar時,我當前的存儲數據庫文件(embedded derby database)的方式不起作用。獲取主可執行文件.jar文件的目錄路徑

簡而言之,我需要一種方法讓應用程序找到.jar文件正在運行的目錄,並在同一目錄中設置embedded DB database

萬一有幫助,目前的辦法,我得到它的「工作」(在IDE中)如下:

public final void setDBSystemDir() throws UnsupportedEncodingException, SQLException{ 
     String path = DataBase.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 
     String decodedPath = URLDecoder.decode(path, "UTF-8"); 
     String systemDir = decodedPath + "/listData/"; 
     System.setProperty("derby.system.home", systemDir); 
} 

任何指針歡迎。

+0

你看過http://stackoverflow.com/questions/320542/how-to-get-the-path-of-a-運行-JAR文件?RQ = 1? – jordan

回答

0

您可以使用下面的代碼來獲取路徑,

CodeSource source = DataBase.class.getProtectionDomain().getCodeSource(); 
File file = new File(source.getLocation().toURI().getPath()); 
String dir = file.getParentFile().getPath(); 
相關問題