簡體   English   中英

IntelliJ IDEA中Java項目中的相對資源路徑

[英]Relative resource paths in Java project in IntelliJ IDEA

我試圖通過使用相對路徑在我的 GUI 中顯示一個圖標,如“從resources/image.png圖像顯示圖像”。 我已經嘗試了一百萬種不同的方式來表達這一點,但沒有任何效果。 這讓我覺得這是我的 IntelliJ IDEA 設置或項目結構的問題。 我已將“資源”文件夾設置為“資源文件夾”。 我不知道它還希望我做什么。

如何使用 IntelliJ IDEA 中 Java 項目中的相對路徑從文件加載圖標?

我的項目結構:

src/main/java/ <-- set as "sources" in IntelliJ
src/main/java/ui/ <-- contains classes for my GUI
src/main/resources/ <-- set as "resources" in IntelliJ. Contains images.

編輯:能夠使用相對路徑來確認找到文件,無法將其加載為圖標。

String path = "src/main/resources/image.png";
System.out.println(new File(path).exists()); <-- true

我多次遇到這個問題,對我InputStream是使用InputStream

InputStream is = Main.class.getClassLoader().getResourceAsStream("name_of_file.png");

使用InputStream將允許您從各種文件類型中讀取。 現在加載你可以做的圖標

Icon icon = new ImageIcon(ImageIO.read(is));

資源在類路徑上,而不是在文件系統路徑上——它是從運行目錄中獲取的,當你從idea運行它時,它是項目目錄。 通常你會將應用程序作為 jar 分發,這最好從類路徑加載資源。 在 zour 情況下 - 從根目錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM