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

NetBeans Java Discussion :

Problème création Jar exécutable


Sujet :

NetBeans Java

  1. #1
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut Problème création Jar exécutable
    Bonjour

    C'est mon tour....
    Je croie le pb est récurent vue le nombre de question a ce sujet sur le forum

    Aprés avoir lu tous les tutos du web...j'y arrive pas!

    Sur eclipse, mon prog se lance

    A partir de mon .bat, j'ai l'impression que c'est la ligne 182 qui bloque.
    Mais pourquoi?
    Nom : Capture.PNG
Affichages : 153
Taille : 114,8 Ko

    voci le bout de code ligne 182
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // FRANCAIS
    	private ImageIcon icon_FR = new ImageIcon(getClass().getResource("/Image/FR.png").getFile());
    	public Image image_FR = icon_FR.getImage();
    Ligne 182 c'est ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	public BufferedImage BI_FR = new BufferedImage(image_FR.getWidth(null), image_FR.getHeight(null),			BufferedImage.TYPE_INT_ARGB);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public ImageIcon newIcon = new ImageIcon(BI_FR);
    	public Image newImage = image_FR.getScaledInstance(Largeur, Hauteur, java.awt.Image.SCALE_SMOOTH);
    	// Icone retaillée
    	public ImageIcon newIcon_FR = new ImageIcon(newImage);
    En fait je construit une image pour m'en servir sur des boutons.
    Et dans Eclipse, quand je lance tout marche.
    Merci de prendre un peux de temps.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Avec le code suivant, tu chargeras l'image par son URL (Uniform Resource Locator) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ImageIcon icon_FR = new ImageIcon(getClass().getResource("/Image/FR.png"));
    Il ne faut pas utiliser la partie file (obtenue par getFile()), car isolée, elle n'a aucun sens (une URL, c'est aussi un protocole, qui dans ton cas sera file: lors de l'exécution sous Eclispe, et jar:, lors de l'exécution sous forme de jar (et cette différence est cruciale).

    Au lieu de te compliquer la vie en lisant l'image via un ImageIcon, tu peux aussi la charger directement par ImageIO.

    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
    17
     
    private final static int LARGEUR = ... ;
    private final static int HAUTEUR = ... ;
     
    private final static ImageIcon IMAGE = readImage();
     
    private static ImageIcon readImage() {
       try {
          return new ImageIcon(ImageIO.read(getClass().getResource("/Image/FR.png")).getScaledInstance( LARGEUR, HAUTEUR, java.awt.Image.SCALE_SMOOTH ));
       }
       catcht(IOException e) {
          e.printStackTrace();
          System.exit(-1);
       }
       return null;
    }
    }
    Encore que redimensionner l'image dans le fichier à la base serait probablement encore mieux.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Bonjour

    merci d'avoir répondu

    Avec ton code j'ai le message suivant sur le getClass()

    Cannot make a static reference to the non-static method getClass() from the type Object

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	      return new ImageIcon(ImageIO.read(getClass().getResource("/iconeimage/FR.png")).getScaledInstance( Largeur, Hauteur, java.awt.Image.SCALE_SMOOTH ));

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Remplace le getClass() par P840D.class (si P840D est bien le nom de la classe).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Bonjour

    Désolé hier soir j'ai été occupé, j'ai pas pu reprendre les essais aprés ma question.
    donc j'ai changé mais toujours en rouge

    P840D est une extension de JFrame

    et maintenant le message est de créer une méthode getRessource....

    Je vais essayer en redimensionnant directement les images

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu as oublié le .class après le PB40D : ... PB40D.class.getResource( ....
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    bonjour

    j'ai retaillé mes icones, c'est plus simple, le JAR executable se lance

    par contre, l'icone principale de l'appli ne se charge pas, bien que sous eclipse oui.

    je charge ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private ImageIcon icon_TO = new ImageIcon(getClass().getResource("/iconeimage/BO_288_288.png").getFile());
    public Image image_TO = icon_TO.getImage();
    et utilise ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setIconImage(image_TO);

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est le getFile() (comme dès le début) qui pose problème : c'est l'URL (entière) qui faut utiliser, par sa sous-partie file (qui dans le cas de ImageIcon sera considéré comme un chemin de fichier).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Bien vue

    et merci tout marche.

  10. #10
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Je vais solder le sujet.

  11. #11
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Finalement c'est pas fini...
    je veux charger des TextArea a partir de mes resources (un texte exemple)

    en paramètre
    fichier="/fichiersexemples/fichier_1.txt"
    m, le TextArea a remplir.

    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
    17
    18
    19
    20
     
    	public void ChargerTextAreaFichier(String fichier, JTextArea m) {
    		m.setText("");
    		URL Fichier = P840D.class.getClass().getResource(fichier);
    		String CheminFichier = Fichier.getPath();
    		try {
    			FileInputStream flux = new FileInputStream(CheminFichier);
    			InputStreamReader lecture = new InputStreamReader(flux);
    			BufferedReader buff = new BufferedReader(lecture);
    			String ligne;
    			while ((ligne = buff.readLine()) != null) {
    				// System.out.println(ligne);
    				m.append(ligne + Newligne);
    			}
    			buff.close();
    			m.setCaretPosition(0);
    		} catch (Exception e) {
    			System.out.println(e.toString());
    		}
    	}
    OK sous Eclipse
    Jar bien exporté mais marche pas!

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est pareil : il faut utiliser l'URL (openStream() pour lire le flux).

    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
    17
    18
    URL url = P840D.class.getResource(fichier);
    try (BufferedReader lecture = new BufferedReader(new InputStreamReader(url.openStream()))) {
       final StringBuilder sb=new StringBuilder();
       boolean first=true;
       for(String ligne = lecture.readLine(); ligne!=null; ligne = lecture.readLine()) {
          if( first ) {
             first=false;
          }
          else {
             sb.append('\n');
          }
          sb.append(ligne);
       }
       m.setText(sb.toString());
       m.setCaretPosition(0);
    } catch (IOException e) {
       e.printStackTrace();
    }
    Ou, en Java 8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    URL url = P840D.class.getResource(fichier);
    try (BufferedReader lecture = new BufferedReader(new InputStreamReader(url.openStream()))) {
       m.setText(lecture.lines().collect(Collectors.joining("\n")));
       m.setCaretPosition(0);
    } catch (IOException e) {
       e.printStackTrace();
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Merci

    et évidement ça marche.

    la dernière
    même style, le fichier souvre tjs pas avec l'exécutable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		Texte_TabAide_Bp_1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				try {
    					URL Fichier = P840D.class.getResource("/fichiersexemples/Exemple1.pdf");
    					String CheminFichier = Fichier.getPath();
    					java.awt.Desktop.getDesktop().open(new File(CheminFichier));
    				} catch (IOException ex) {
    					ex.printStackTrace();
    				}
    			}
    		});
    il y a pourtant P840D.class...
    merci d'avance

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le problème c'est que open() ne peut traiter une URL, mais que un File, parce que l'ouverture d'un document dans une application permet souvent de modifier le document, ce qui n'est pas possible avec une URL de manière générale.

    Un PDF peut être ouvert dans la plupart des navigateurs Internet, donc tu dois pouvoir ouvrir l'URL par Desktop.getDesktop().browse(url.toURI()), mais ce n'est pas sûr que ça fonctionne sur tous les postes.

    Sinon, il faudra sauvegarder le fichier (dans le dossier temporaire), pour l'ouvrir par open() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static void open(URL url) throws IOException {
     
       final File file = new File(System.getProperty("java.io.tmpdir"), url.getPath().replaceAll("\\|/", "_"));
     
       file.deleteOnExit(); // (ceci n'est pas obligatoire) le fichier sera supprimé à la fermeture de l'application, s'il n'est pas verrouillé
     
       try(InputStream inputStream = url.openStream()) {
          Files.copy(inputStream, file.toPath());
       }
     
       Desktop.getDesktop().open(file);
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #15
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Le problème c'est que open() ne peut traiter une URL
    C'est ce que je comprend pas. Quand je lance par Eclpise, open() m'ouvre le pdf pourtant!

  16. #16
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lio908 Voir le message
    C'est ce que je comprend pas. Quand je lance par Eclpise, open() m'ouvre le pdf pourtant!
    Parce que tu fais une bidouille, en récupérant le path de l'url.
    L'URL d'un fichier c:/temp/toto.pdf sera file:/c:/temp/toto.pdf. Quand tu récupères le path (getPath()), tu récupères c:/temp/toto.pdf, ce qui est bien le chemin du fichier.
    L"URL d'un fichier dans un jar est jar:file:/c:/temp/fichier.jar!temp/toto.pdf, et donc le path c'est file:/c:/temp/ fichier.jar!temp/toto.pdf, donc pas du tout un chemin de fichier, ce qui est normal : toto/temp.pdf n'est pas un fichier, c'est un bout du fichier fichier.jar.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #17
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    Bonsoir

    j'ai décodé l'url suivant quelle est lancée par Eclipse ou jar et redéfini le chemin du fichier en fonction
    ça marche.

    Cela implique les fichier à 2 endroit, un dans ressource du projet sous Eclipse et un dans un répertoire là ou sera installé l'appli.

    Merci des infos, je connaissait pas ces subtilités dues à l'EDI.

    Je solde.

  18. #18
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce n'est pas une subtilité due à l'EDI : l'URL est différente selon l'emplacement de la ressource (fichier local sur le système locale, ressource interne à un fichier zip ou jar, fichier distant sur serveur http, fichier distant sur ftp, autre...) et c'est tout à fait normal, EDI ou pas (on peut accèder à une ressource dans un jar même lors de l'exécution dans l'EDI). La différence d'exécution dans ton cas étant surtout que dans un cas l'application est packagée en jar, et pas dans l'autre, où c'est une arborescence de dossiers avec des fichier .class dedans, et donc, où les ressources sont aussi des fichiers accessibles par File. Et il n'est pas nécessaire de différencier le fonctionnement (heureusement) : le seul problème c'est que Desktop.open() ne fonctionne qu'avec des fichiers, pas des ressources accessibles par URL.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  19. #19
    Membre régulier
    Homme Profil pro
    Automaticien
    Inscrit en
    Décembre 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    bonjour

    alors quelle est la bonne méthode?

    dans un projet, j'ai des fichiers ressources, pdf pour explications, texte a charger ou autre...

    sous eclipse, je les charges, tant bien que mal, avec le getResource("nomdefichier.ext") et tout va trais bien.
    Je pense que c'est la solution la plus simple.

    quand j'exporte mon appli pour un utilisateur final je fait quoi?

    mon objectif est d'avoir les fichiers "ressource" sur le pc de l'utilisateur final.

  20. #20
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Celle dont on parle dans toute cette discussion, depuis le début.

    Pour la documentation, c'est nécessaire d'avoir un PDF ? Un HTML, ce n'est pas possible ? Tu peux afficher du HTML en interne, avec WebView de JavaFX. Si le PDF est absolument nécessaire, tu peux aussi l'afficher en interne avec PDFRenderer (il y a même des intégrations pour WebView, comme https://github.com/james-d/PdfViewer).

    Exemple :
    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
    17
    18
    19
    20
    21
    22
    23
    public class WebViewDemo {
     
    	public static void main(String[] args) {
     
    		JFrame jframe = new JFrame();
    		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		URL url = WebViewDemo.class.getResource("rsc/doc.html");
     
    		JFXPanel jfxPanel = new JFXPanel();
    		jframe.add(jfxPanel);
    		Platform.runLater(() -> {
    		    WebView webView = new WebView();
    		    jfxPanel.setScene(new Scene(webView));
    		    webView.getEngine().load(url.toString());
    		});
     
    		jframe.setSize(400, 400);
    		jframe.setVisible(true);
     
    	}
     
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
    <body>
    <p>truc bidule</p>
    <img src="suricate.png"/>
    </body>
    </html>

    Nom : CaptureWebViewDemo.PNG
Affichages : 131
Taille : 5,3 Ko

    Affichage :
    Nom : CaptureDemo.PNG
Affichages : 134
Taille : 32,9 Ko
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Problème de création de .jar exécutable
    Par Altitude_K dans le forum NetBeans
    Réponses: 12
    Dernier message: 11/09/2015, 23h47
  2. Problème création jar exécutable
    Par Bebuck dans le forum Débuter avec Java
    Réponses: 23
    Dernier message: 01/09/2011, 21h21
  3. création jar exécutable
    Par vasilov dans le forum NetBeans
    Réponses: 3
    Dernier message: 13/01/2009, 13h15
  4. Problème de création d'un jar exécutable
    Par zeero_cool dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 21/10/2008, 14h52
  5. Réponses: 6
    Dernier message: 12/06/2006, 16h38

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