[英]How to adjust relative & absolute paths when exporting eclipse java project to executable jar?
好的,所以我在Eclipse中有一個名為SWT的項目。 在該項目的一個類中,有一個代碼:
public static String rpath = "..\\SWT\\src\\data.txt";
public static String path = new File(rpath).getAbsolutePath();
如果我在eclipse中編譯並運行項目,則我的程序能夠找到data.txt並將其用作輸入,這是文件的預期目的。
然后,我將此項目導出到可執行的jar文件,打開命令提示符,然后輸入java -jar 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,但是無法使用上面指定的相對路徑來找到其確切位置,我覺得這很奇怪。
您的jar文件中將沒有src目錄。 僅軟件包名稱和類文件。
嘗試這個:
URL url = ClassLoader.getSystemResource("/data.txt");
File file = new File(url.toURI());
更多信息在這里 。
您可以將文件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());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.