簡體   English   中英

將文件加載到Jar外部

[英]Load a file outside of a Jar

我有一個名為lib的文件夾,其中包含我的所有Jar文件,並且在一個Jar文件類中,我有一個由批處理文件調用的main方法。 在與我的lib相同的文件夾位置中,我有另一個文件夾結構path / to / a / resource / myresource.txt

如何從Jar文件中的類加載此文件? 我嘗試了以下操作,並且都導致null:

getClass().getResource("path/to/a/resource/myresource.txt")
getClass().getClassLoader().getResource("path/to/a/resource/myresource.txt")

有任何想法嗎? 即使有絕對路徑,它也失敗了! 有什么建議么?

您可以使用:

getClass().getResourceAsStream("path/to/a/resource/myresource.txt")

但是,要使其正常工作,您需要添加路徑“。”。 到JAR的MANIFEST.MF文件的Class-Path條目。

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

您嘗試使用兩種方法從類路徑讀取文件,因為此文件夾不在您的類路徑上,因此您可以使用任何java File IO類直接讀取該文件夾。

File file = new File("C:/folder/myFile.txt");

或者,如果您知道相對路徑:

 File file = new File("../../path/myFile.txt");

您的路徑似乎不夠精確。 此外,這個問題以前已經解決過。

在這里看看:

如何在JAR之外但相對於JAR加載文件?

如何獲取正在運行的JAR文件的路徑?

您可以從文件系統加載文件

new FileReader(relativeOrAbsoluteFilesystemLocation)

或者您可以將相關目錄添加到您的類路徑中:

java -cp "lib/*;lib" ...

然后使用您的原始方法。

(Unix使用:而不是;作為類路徑分隔符)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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