2013-11-22 184 views
0

加載文件時出現了一些問題! (不是像剛纔真的很喜歡.txt和東西的文件) 它加載罰款NetBeans支持加載文件(外部)

File myfile = new File("a/b/myfile.abc"); 

問題是編譯罐子得到一個例外,沒有找到該文件。我需要它作爲一個文件,而不是一個流或什麼,這是問題,我已經嘗試了所有想到加載它的東西。 我想從外部(而不是從罐子裏面)加載它,問題是似乎無法通過getRessource(AsStream)獲得工作設置。

編輯: 好,所以我讓它打印絕對路徑,當它被編譯,當它沒有編譯。 非編譯路徑:

C:\Users\USERNAME\Documents\NetBeansProjects\ProjectName\a\b\myfile.abc <-- Correct Path 

編譯路徑:

C:\Users\USERNAME\a\b\myfile.abc <-- Not Correct Path 

任何人能告訴我如何解決這一問題? EDIT²: 如果我使用cmd(cd等)導航到正確的文件夾並在完成後啓動jar,則文件夾將從正確的目錄加載。有人能告訴我我需要改變什麼嗎? EDIT³: 當不與CMD開始似乎搜索Windows/SYSTEM32文件夾:o

+1

僅供參考,該文件路徑是相對於你的jar的位置,所以確保jar和所需的文件在正確的位置 – foolmoron

+0

一切都在正確的地方我已經檢查過 – Slashking

+0

那麼,該文件是一個jar的一部分或不? – dimoniy

回答

0

當你構建與

new File("abc.txt") 

abc.txt文件的文件應該是在當前目錄。當前目錄是啓動java命令來執行應用程序的目錄。因此,如果您在c:\foo\bar並執行java -cp d:\java\app\MyApplication.jar MyApplication,它會查找文件c:\foo\bar

應用程序jar的位置是無關緊要的,並且在查找文件的位置沒有任何影響。當前目錄是重要的。

+0

但我怎麼能告訴java,當前目錄是「正確的」目錄(沒有啓動CMD,並使用cd命令)? – Slashking

+0

如何通過啓動命令行,轉到目錄並輸入java命令來啓動java?如果你通過雙擊jar來啓動它,那麼你不應該依賴相對路徑。改用絕對路徑。 –

+0

我想通過雙擊該jar來啓動它,並且我還希望相對路徑爲絕對路徑,當涉及到將jar發送給其他人時,它是垃圾。 – Slashking