2017-04-20 123 views
1

我試圖改變停靠圖標的jar文件打開文件,但它僅適用於絕對路徑:的Java不能使用相對路徑

Image image = Toolkit.getDefaultToolkit().getImage("/User/Project/src/main/resources/icon.png"); 

即使文件是在同一個包這並未」將不起作用:

Image image = Toolkit.getDefaultToolkit().getImage("./icon.png"); 

項目結構: enter image description here

+0

哪裏是你的文件嗎?與jar相同的文件夾?在這種情況下,只需使用「icon.png」 –

+0

'../ icon.png'? – Laazo

+0

我已經在相同的包中測試了它,非相對路徑變體的工作。 儘管'Project/src/main/resources'中的文件是通過'/ fileName'從'Project/src/main/java/application'中訪問的 – Arashigor

回答

1

你應該試試這個:

Toolkit.getDefaultToolkit().getImage("icon.png"); 

它將搜索main/resources中的文件名icon.png

UPDATE:

如果仍然沒有工作,這應該做的伎倆:

Toolkit.getDefaultToolkit().getImage("src/main/resources/icon.png"); 
+0

我做過了,在這種情況下,圖標變爲默認的exec logo – Arashigor

+0

你是什麼意思'exec logo'? 'src/main/resources'裏面沒有'icon.png'嗎? – aUserHimself

+0

是的,我的'icon.png'在'src/main/resources'裏面,但是隻有在使用絕對路徑時纔打開文件。 – Arashigor