[英]Launching a text file from a .jar file (File path?)
我正在嘗試使用Desktop.getDesktop()。open(file)從.jar文件啟動文本文件
String fileName = "file.txt";
URL url = getClass().getResource(fileName);
File fileToRead = new File(url.toURI());
Desktop.getDesktop().open(fileToRead);
為了簡單起見,我省略了try-catch塊。 從Eclipse運行時,它可以打開我的文件。 但是一旦導出到.jar文件,我就會在File fileToRead = new File(url.toURI());中得到NullPointerException 。
將類打包到.jar文件中時,通常會使它嵌套更深一層。
因此,您可以嘗試將第一行更改為:
String filename = "../file.txt";
查看Class.getResource(String)
的JavaDoc:
使用以下算法從給定資源名稱構造絕對資源名稱:
如果名稱以“ /”開頭,則資源的絕對名稱是名稱中“ /”之后的部分。 否則,絕對名稱的格式如下:
modified_package_name/name
其中modified_package_name
是此對象的程序包名稱,用“ /”代替“。”。參數:
名稱-所需資源的名稱
返回:URL對象;如果找不到具有該名稱的資源,則返回null
找不到您的資源,因此出現NullPointerException。 按照JavaDoc的描述指定JAR中的路徑(以'/'開頭或相對於this
的類的絕對路徑,您要在其上調用getClass().getResource(fileName)
)應該得到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.