2013-04-12 68 views
0

好吧,我在eclipse中有一個名爲SWT的項目。在這個項目中存在的類之一是代碼:如何在將eclipse java項目導出到可執行文件jar時調整相對和絕對路徑?

public static String rpath = "..\\SWT\\src\\data.txt"; 
public static String path = new File(rpath).getAbsolutePath(); 

如果我編譯和運行我在Eclipse項目,我的計劃是能夠找到的data.txt並用它作爲輸入,這是該文件的目的目的。

我那麼這個項目導出到一個可執行的JAR文件,打開命令提示符,然後輸入Java的罐子SWT.JAR。該程序打開,但在命令提示符下,存在以下錯誤:

java.io.FileNotFoundException: C:\Users\Yoshikawa\workspace\SWT\..\data.txt (The system cannot find the file specified)

我的問題:

我怎麼能事先修改我的代碼,將其導出到一個可執行的JAR,使我可以讓我的可執行jar能夠找到data.txt?順便說一下,我的可執行文件jar已經包含data.txt,但無法使用上面指定的相對路徑來查找它的確切位置,我發現這很奇怪。

回答

0

你的jar文件中不會有src目錄。只有包名和類文件。

0

試試這個:

URL url = ClassLoader.getSystemResource("/data.txt"); 
File file = new File(url.toURI()); 

更多信息here

+0

我在哪裏添加的這兩行代碼?我是否添加刪除了上面兩行,並將其替換爲這個,還是除此之外還添加了它?我也希望它的文件路徑是字符串格式。 – nbhgt

0

你可以把文件,data.txt中,一些包,然後使用一個類從這個包來做到這一點:

URL url = ClassFromSamePackageOfFile.class.getResource("data.txt"); 

File f; 
try { 
    f = new File(url.toURI()); 
} catch(URISyntaxException e) { 
    f = new File(url.getPath()); 
} 
相關問題