Maison >Java >javaDidacticiel >Comment résoudre l'erreur « L'emplacement n'est pas défini » dans JavaFX lors de l'exécution à partir d'un JAR ?
Résolution d'erreur d'emplacement JavaFX non défini
Lorsque vous essayez d'exécuter un projet JavaFX via la ligne de commande après avoir créé un fichier JAR, vous pouvez rencontrer un Erreur « L'emplacement n'est pas défini ». Ce problème survient lors de l'utilisation correcte de getClass().getResource() dans le contexte du chargement et de la localisation des ressources.
La méthode getClass().getResource() est destinée à charger des ressources et non à spécifier un chemin de fichier. Bien que cela puisse sembler fonctionner dans l'IDE en raison du chargeur de classe qui le résout à partir du système de fichiers, cela peut échouer lors de l'utilisation du chargeur de classe JAR, qui n'implémente pas la résolution des ressources de la même manière.
Solution 1 : Utiliser le chemin de ressource absolu
Pour résoudre le problème, spécifiez le chemin de ressource absolu du fichier FXML à l'aide du séparateur / :
<code class="java">FXMLLoader loader = new FXMLLoader(getClass().getResource("/sm/customer/CustomerHome.fxml"));</code>
Solution 2 : Utiliser Emplacements des contrôleurs
Vous pouvez également exploiter l'organisation de votre code et charger le fichier FXML par rapport à son contrôleur :
<code class="java">FXMLLoader loader = new FXMLLoader(CustomerHomeCtrl.class.getResource("CustomerHome.fxml"));</code>
Cette approche s'aligne sur l'empaquetage structuré de vos contrôleurs et de FXML. fichiers et simplifie la refactorisation en mettant automatiquement à jour les instructions d'importation lors du déplacement de FXML et des contrôleurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!