簡體   English   中英

將Eclipse Java項目導出到可執行jar時,如何調整相對和絕對路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM