好的我正在使用Eclipse開發一個需要讀取文本文件的程序。這個想法是將JAR和文本文件放在同一個文件夾中。所以我得到的文本文件的路徑是這樣的:在Linux中將Java URL轉換爲有效的文件路徑
Client.class.getClassLoader().getResource("Client.class");
這正確返回的路徑和我追加的文件名,並獲得以下路徑:當我出口我的項目
/home/marquinio/workspace/my_project/info.txt
問題是到一個可執行的JAR文件中。 JAR無法讀取文件。我加倍檢查,一切都很好。我看到的唯一的問題是,現在的路徑有一些「文件:」開頭附加這樣的:
file:/home/marquinio/workspace/my_project/info.txt
這可能是爲什麼我得到一個「FileNotFoundException異常」。 JAR和文本文件都在同一個文件夾中。
任何人都知道如何解決這個問題?爲什麼在命令提示符下Java和Eclipse之間執行JAR的行爲會有所不同? 是否有替代Java提供的「... getResource(...)」沒有「file:」?
注意:此JAR還應該在Windows環境中兼容。仍然需要測試它。
在此先感謝。
一種可能性:在調用作爲文本文件路徑的jar時傳入命令行參數。 –
*「需要讀取文本文件」*如果不需要將**寫入文本文件,請將其放入Jar並使用'getResource(String)'獲取URL。該URL不能用於'Desktop.open(文件)',但有'Desktop.browse(URI)'和許多其他方式來顯示文本文件在幾行代碼中。 –
糟糕!我剛剛意識到'Desktop.browse(URI)'將無法使用Jar中的資源。我多麼愚蠢。不過,其他方面還有'JEditorPane.setPage(URL)'。將JEP放入'JScrollPane'中,爲其設置一個合理的首選大小,並使用'JOptionPane'顯示它。大約5-10行代碼。這裏是一個[簡短示例](http://stackoverflow.com/questions/7158435/java-opening-a-resource-txt-file-which-is-in-a-jar-with-os-standard-applicatio/ 7165320#7165320)。 –