Javafx getHostServices().getCodeBase () renvoie une chaîne vide


J'appelle getHostServices().getCodeBase () dans la méthode start de l'application javafx mais elle renvoie une chaîne vide????. Les deux appels du constructeur de l'application et de la méthode start renvoient une chaîne vide.

 public class MyApplication extends Application {

        private HostServices hostService;
        private MyController controller ;
        private Parent root;
        private HostServices hostService;

    public MyApplication() throws IOException  {

        hostService = getHostServices();
        System.out.println("Codebase : "+hostService.getCodeBase() ); // return empty string 

    }

        @Override
        public void start(Stage primaryStage) {

            this.primaryStage = primaryStage;

            try {

                FXMLLoader fxmlLoader = new FXMLLoader(this.getClass().getResource("/mypackage/my.fxml") ); 
                controller = new MyController();
                fxmlLoader.setController(controller);
                fxmlLoader.load();
                root = fxmlLoader.getRoot();

                Scene scene = new Scene(root,1200,1000); 
                primaryStage.setScene(scene);
                primaryStage.show();
                 System.out.println("Codebase : "+getHostServices().getCodeBase() ); // return empty string 

            } catch(Exception e) {
                e.printStackTrace();
            }
        }  

C'est une situation très étrange puisque l'application déployée sur le web, il est important d'obtenir la base de code.

Author: tsa, 2015-11-03

1 answers

De la hostServices.getCodeBase() jadoc:

Si l'application n'est pas empaquetée dans un fichier jar, cette méthode renvoie la chaîne vide.

En plus:

Si l'application a été lancée via un fichier JNLP, cette méthode renvoie le paramètre de base de code spécifié dans le fichier JNLP.

Pour que hostServices.getCodeBase() renvoie une valeur attendue, vous devez emballer correctement votre application conformément aux directives ci-dessus.

La façon dont vous empaqueter votre application varie en fonction des outils d'empaquetage que vous utilisez, référez-vous donc à la documentation de votre fournisseur d'outils pour obtenir des informations sur l'empaquetage d'une application à l'aide de l'environnement de développement que vous avez choisi.

 0
Author: jewelsea, 2015-11-03 00:13:20