2014-01-09 15 views
2

我有下面的代碼剪斷返回空的問題:Logic.class.getResource(「effects \ newball.wav」);返回null

System.out.println(Logic.class.getResource("effects\\newball.wav")); 

我在我的項目稱爲效果的源文件夾中。在這個文件夾中有被引用的文件。我認爲有一個語法錯誤...因爲文件是那裏。我必須以這種方式引用(用getResource表示)到我的文件,因爲我將在稍後將它導出爲jar。

謝謝

+0

你是如此的肯定,該文件存在,您可能沒有意識到,你指定的路徑沒有。 –

+0

嘗試'/ effects/newball.wav',它必須幫助你。 – alex2410

+0

它不起作用。同樣的問題 – Mansouritta

回答

0

資源路徑應使用斜線,無論你正在使用的機器上的文件系統的:嘗試「特效/ newball.wav」

http://docs.oracle.com/javase/7/docs/technotes/guides/lang/resources.html(在「資源名稱,並上下文 - 「資源名稱獨立於Java實現;特別是,路徑分隔符總是斜槓(/)」)

+0

任何有關爲什麼''''''壞'和'/'好的參考?從我聽說Java應該使用而沒有問題。 – Pshemo

+0

@pshemo - 謝謝 - 更新以添加參考 – JVMATL

+1

@JVMATL它不起作用。 :(我已經嘗試了很多,沒有任何工作 – Mansouritta

2

您的effect目錄應該是src目錄的直接子目錄。在這種情況下,您需要一個/來啓動str ing路徑。所以,你會需要這個

System.out.println(Logic.class.getResource("/effects/newball.wav")); 

ProjectRoot 
      src 
      effect 
        newball.wav 

我通常做使用IDE只是創建一個新的包,並命名爲任何我想要的文件是 - 你的情況「效果」。這樣更容易。


UPDATE

「我做到了exatly如此,但它仍然返回null」

它工作正常,我

enter image description here

package stackoverflow; 

public class Test { 

    public static void main(String[] args) { 
     System.out.println(Test.class.getResource("/effects/stack_reverse.png")); 

    } 
} 

輸出:file:/C:/Android/workspace/StackOverflow/bin/effects/stack_reverse.png

+1

我做得很好,但它仍然返回null – Mansouritta

+0

請參閱我的**更新**看看是否有幫助 –

+1

謝謝!你如何在帖子中添加圖片?這對我有幫助:) – Mansouritta