2015-02-05 131 views
7

我試圖構建一個.jar,其中包含一個非標準圖像和字體,我已將其添加到項目的資源文件夾中。我可以使用下面的代碼將它們加載到我的項目中。Intellij資源不在構建的工件

URL url = ClassLoader.getSystemResource("./some_font.ttf"); 

Font font = Font.createFont(Font.TRUETYPE_FONT, url.openStream()); 

雖然這個工程當我在IDE中運行程序,當導出的jar運行時,它無法加載字體。

回答

1

Intellij將標記爲「資源」的文件夾視爲附加的類路徑目錄,可以通過它自己的自動完成功能或在您的情況下運行/調試功能來發現它們。嘗試右鍵單擊此文件夾並選擇「將目錄標記爲」>「取消標記爲資源根目錄」以驗證此假設。如果它停止工作,則需要提供更可靠的路徑,以考慮此文件位於生成的jar文件中的位置。

+0

這是我試過的東西。它似乎不是問題。 – Beryllium

+0

如果沒有看到實際的項目,很難提出什麼問題,但假設大多數基本項目結構由2個正確標記的文件夾/ src和/ resources以及從「Modules with dependencies ...」解決方案創建的默認jar創建以資源爲URL url = ClassLoader.getSystemResource(「some_font.ttf」);因爲它應該放在罐子裏面的根級別,並且可以直接解決 – Aerondir

7

你可以創建你自己的項目結構構件: enter image description here

在那裏,你可以添加資源文件夾的目錄內容。 按下綠色加號並導航到您的文件夾並添加它。 然後你可以點擊build-> build artifacts - > build。 在我的情況下,jar是在./out/artifacts文件夾中創建的。

+1

IntelliJ爲什麼不稱之爲資源編譯輸出。 – igr

相關問題