IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Rechercher un fichier dans le fichier .JAR à l'aide de getClass().getResource("Fichier")


Sujet :

JavaFX

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut Rechercher un fichier dans le fichier .JAR à l'aide de getClass().getResource("Fichier")
    Bonjour !

    Quand je travaillais avec JAVA, pour cherchais un fichier contenu dans le fichier.JAR après la compilation, j'utilisais la méthode getClass().getResource("/Package/Fichier.format"), fichier image par exemple pour utiliser un ImageIcon, et ça marchait sans soucis.

    Une fois passé à JAVAFX, cette fonction ne fonctionne plu, on dirait que le fichier n'est pas trouvé, pourtant j'utilisais la même démarche...
    Si quelqu'un pourrait m'aider à comprendre le problème et trouver une solution .

    Merci d'avance , Cordialement Mouley.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Exemple, module de test, vérification de la valeur retournée par l'URL, vérification du placement de l’icône dans l'arborescence du projet, etc. etc. etc.
    Pas de code, peu voir pas d'aide...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Re,
    J'ai fait des photos pour donner plus d'infos concernant mon problème.
    Je ne vois vraiment pas ou est le problème, peut être qu'avec ces photos, ça sera plus facile de détecter la panne.

    1. => une photo de l'arborescence de mon projet
    Nom : Arborescence.png
Affichages : 464
Taille : 9,4 Ko

    2 => Un teste avec JAVA tout court (Code + resultat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
         public static void main(String[] args) {
            Image img = new Image("/Fichiers/knowledge.jpg");
            System.out.println("Affichage 1 => " + img.url);
            img.url = img.url.substring(6);
            System.out.println("Affichage 2 => " + img.url);
            System.out.println("Existe ? => " + Files.exists(Paths.get(img.url)));
        }
        public static class Image{
            String url;
            public Image(String str){
                this.url = getClass().getResource(str).toString();
            }
        }
    Nom : Jav2.png
Affichages : 420
Taille : 4,8 Ko

    3 => Un teste avec JAVAFX (Code + resultat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
        @Override
        public void start(Stage primaryStage) {
            Image img = new Image("/Fichiers/knowledge.jpg");
            System.out.println("Affichage 1 => " + img.url);
            img.url = img.url.substring(10);
            System.out.println("Affichage 2 => " + img.url);
            System.out.println("Existe ? => " + Files.exists(Paths.get(img.url)));
            primaryStage.show();
        }
        public static class Image{
            String url;
            public Image(String str){
                this.url = getClass().getResource(str).toString();
            }
        }
    Nom : FX2.png
Affichages : 437
Taille : 7,4 Ko

    Merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Les resources dans les jar ne sont pas des fichiers, tu n'es pas censé y accéder autrement qu'en passant par l'url que te retrourne getResource. Autrement dit tu oublie Files et Path dans ce domaine là, il ne peux pas marcher dans un jar.

    Et ça n'a rien à voir avec javaFX, c'est juste lié au fait que le premier programme s'exécute dans des dossiers éclaté, et le deuxième programme s'exécute dans un jar.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Et ensuite plutôt que d'inclure des captures d’écran (des photos ça se prend avec un appareil photo), on utilise la balise [CODE] ou le bouton # dans la barre de l’éditeur et on recopie le code dedans.

    Nom : codeception.jpg
Affichages : 435
Taille : 26,9 Ko
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Re !
    Merci pour la réponse, j'y vois plus clair maintenant !
    En faite mon but c'était de lire un fichier mp3 en l'intégrant dans mon projet (au lieu du fichier knowledge.jpg)
    J'ai donc essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
           String musicFile = getClass().getResources("/Sounds/Fichier.mp3");
           Media sound = new Media(new File(musicFile).toURI().toString());
           MediaPlayer mediaPlayer = new MediaPlayer(sound);
           mediaPlayer.play();
    Mais ça retourné une exception au moment ou le programme s’apprêter à lire ce morceau de code.
    Après avoir vu l'explication j'ai opté pour une autre solution, celle de détacher le fichier.mp3 du fichier.jar, et de traiter le premier en tant que fichier.
    Merci encore (y)

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    La forme correcte est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL musicFile = getClass().getResource("/Sounds/Fichier.mp3");
    Media sound = new Media(url.toExternalForm());
    Même chose pour tes icônes.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Re,
    C'est impeccable (y), merci encore ça marche à la perfection

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/03/2011, 18h41
  2. Réponses: 1
    Dernier message: 05/03/2007, 20h51
  3. [JAR] Accéder à un fichier dans un jar
    Par Nanoua dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 06/07/2004, 13h00
  4. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo