[英]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");
您可以從文件系統加載文件
new FileReader(relativeOrAbsoluteFilesystemLocation)
或者您可以將相關目錄添加到您的類路徑中:
java -cp "lib/*;lib" ...
然后使用您的原始方法。
(Unix使用:
而不是;
作為類路徑分隔符)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.