2016-09-14 44 views
0

所以我必須使用終端運行程序。但是當我這樣做時,它告訴我我找不到要使用的文件。當我使用NetBeans運行我的程序時,沒有任何問題。 這個id我的代碼使用NetBeans時發現文件,未找到使用終端

File file = new File("src/level/Level2.txt"); 
    FileReader fileReader = new FileReader(file); 
    BufferedReader reader = new BufferedReader(fileReader); 

當它的工作原理,程序應該打開一個窗口,從文件級別。 當爲文件名嘗試「level/Level2.txt」時,會打開一個空白窗口。 希望有人能幫助我。

編輯 我發現有什麼問題。我的程序找不到要顯示的圖像。

+1

你的用戶目錄已經改變了,這並不奇怪。不要爲此使用文件,請使用資源。 Google這個。 –

+0

我試過這樣做,但它仍然不起作用 – Hxebu1

+0

您的編輯沒有意義。您的問題涉及閱讀文本文件的問題。請修正您的問題,以便我們可以瞭解正在發生的事情(或刪除它)。 –

回答

-1

爲了讓事情不那麼神祕,您可以嘗試使用絕對路徑而不是相對路徑。

String currentDir = Paths.get(".").toAbsolutePath().normalize().toString(); 
System.out.println("currentDir = " + currentDir); 

例如,我的系統這個輸出這個目錄名字:

currentDir = /Users/harry/Projects/proj3 

的絕對路徑,你在命令行中看到的將依賴新生你在哪裏開始的Java從控制檯運行目錄(假設你的Java應用程序不會嘗試改變當前的工作目錄。)

建議從這裏借:

Getting the Current Working Directory in Java

我建議這樣做以解決您的特定問題,並且而不是作爲在Java應用程序中使用路徑的一般建議。相對路徑更好......當你在沒有IDE的情況下運行時,找出程序訪問目錄的方式非常好。

+0

好吧,我試過了,它不是相同的目錄。終端給我:currentDir =/Users/Henrike/NetBeansProjects/DisCaptive/src和netbeans給我︰currentDir =/Users/Henrike/NetBeansProjects/DisCaptive – Hxebu1

+0

謝謝你給我看這個。它幫助我獲得要找到的圖像。 – Hxebu1

+0

很高興幫助...我應該說從命令提示符運行會給你一個答案,這取決於你在哪裏運行Java命令來啓動你的程序。 – akubot