JavaFX 位置未設定錯誤解決
建立JAR 檔案後嘗試透過命令列執行JavaFX 專案時,您可能會遇到「位置未設定”錯誤。在資源載入和本地化上下文中正確使用 getClass().getResource() 時會出現此問題。
方法 getClass().getResource() 旨在載入資源,而不是指定檔案路徑。雖然這在 IDE 中似乎可行,因為類別載入器從檔案系統解析它,但在使用 JAR 類別載入器時可能會失敗,因為 JAR 類別載入器不以相同的方式實作資源解析。
解決方案1:使用絕對資源路徑
要解決此問題,請使用/ 分隔符號指定FXML 檔案的絕對資源路徑:
<code class="java">FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));</code>
解決方案2:使用控制器位置
或者,您可以利用程式碼組織並載入與其控制器相關的FXML 檔案:
<code class="java">FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));</code>
此方法與控制器和FXML 的結構化打包保持一致檔案並透過在移動FXML 和控制器時自動更新導入語句來簡化重構。
以上是如何解決從 JAR 執行時間 JavaFX 中的「位置未設定」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!