2014-02-12 74 views
9

我的IntelliJ 12目錄結構:如何將包標記爲資源文件夾?

... 
    ...test 
     - java 
     - com.mycompany.myproject 
      - package1 (contains code, etc,.) 
      - resourcePackage (want to contain .json files but can't mark as a resource) 
      - myOtherJunk.json 
      - o o o 
     - resources 
     - aResource.json 

的事情是,如果我右鍵點擊我的包名(com.mycompany.myproject)我只能添加包和不目錄(像現有的資源文件夾)。

但是,我不想使用那個現有的資源文件夾作爲我要讀入我的測試類的.json文件。

所以,我需要一些東西來支持:

// this already works for the resources directory per the .json file but doesn't for the 
// myOtherJunk.json per the resourcePackage. 
InputStream is = MyClassTest.class.getResourceAsStream("aResource.json"); 

回答

14

這可以通過多種方式來解決。一個好方法的一個例子是以下文件夾結構:

src 
    main 
    java 
    resources 
    test 
    java 
    resources 

當做到這一點,你把下src/main/java/com.mycompany包你的Java類和任何資源/src/main/resources/com/mycompany文件夾下。

要將它們鏈接在一起,請轉到項目屬性,然後找到「路徑」選項卡。將src/main/javasrc/main/resources標記爲源文件夾。 (請參閱附帶的屏幕截圖)Path tab

如果將它們鏈接在一起,則可以使用getResourceAsStream()方法。 如果你想知道爲什麼你應該使用下面的文件夾結構 - 這是標準的保持東西乾淨整潔的方法maven。當你問她創建的軟件包

+0

很酷謝謝你! – JaJ

+2

@Funktik描述的這個「項目設置」菜單位於文件菜單下的「項目結構菜單」中(至少在IntelliJ 15中)。 –

1

目錄創建

的IntelliJ創建目錄。這不是一個錯誤。

如果您創建軟件包「com」,它將創建dir「com」,並且如果您在那裏創建源文件,它會認爲文件位於軟件包「com」中。

如果你創建軟件包「com.next.pack」,它會創建三個嵌套dirs「com」,然後是「next」,然後是「pack」,如果你在那裏創建一個源文件,它會認爲文件位於包「com.next.pack」中。

目錄結構

只有源根目錄下的路徑作爲一個包。任何目錄都可以設置爲源根目錄。

資源根

使幾乎任何結構的目錄。它的某處有資源的根目錄。右鍵單擊它並標記目錄爲...資源根目錄。

請注意,同樣的方法可以用於測試和測試類的目錄結構。 Look here

相關問題