2016-12-13 97 views

回答

1

要檢查的事情

仔細檢查你正在尋找的文件實際上是在你嘗試運行jar文件,它位於你所期望的位置(運行jar tvf <yourjarfile.jar>來檢查這一點)。

此外,仔細檢查以確保您沒有輸入錯誤,例如您提到url("../img/bg.PNG"),但顯示的錯誤消息是top_bg.PNG,因此錯誤消息中的文件名與您的文件名不匹配例。

此外,來自JavaFX CSS reference

注意,對於內聯樣式,前導點段(例如'..''.')並解決由於路徑是在類路徑的根總是固定。

所以,這樣的表示法只能在樣式表中使用,而不能在內聯樣式中使用。

除了

通常情況下,試圖從一個jar文件檢索資源時,不使用..

http:file:協議不同,jar: protocol不解析包含..的相對父地址。

雖然我在本地做了一些測試,但JavaFX中的CSS實現似乎解決了源於jar文件資源的URL中的..說明符,因此在這裏看起來不成問題。 CSS實現可能會預處理..以將其從url中移除,然後將其傳遞到url加載器以加載資源。 (我檢查了JavaFX CSS解析器的源代碼,這就是它的作用,所以..在源自jar的CSS樣式表中使用時很好)。