Maison  >  Article  >  Java  >  Pourquoi les images ne s'affichent-elles pas dans mon JAR exécutable exporté Eclipse ?

Pourquoi les images ne s'affichent-elles pas dans mon JAR exécutable exporté Eclipse ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-24 08:26:11748parcourir

Why are Images Not Displaying in My Eclipse Exported Runnable JAR?

Le JAR exécutable exporté par Eclipse n'affiche pas les images

Lors de la tentative de chargement d'images à partir d'un fichier JAR exporté depuis Eclipse, les utilisateurs peuvent rencontrer des problèmes où le les images ne s'affichent pas.

Pour résoudre ce problème, assurez-vous que suivant :

1. Emplacement de la ressource d'image :

  • Confirmez que les images sont correctement regroupées dans un package de classe de ressources. ≪/li>
  • Vous pouvez également essayer de créer un "dossier source d'images" et d'y placer les images.
  • 2. Méthode de chargement de l'image :

    Vérifiez la méthode de chargement de l'image utilisée. Les méthodes suivantes ont été testées avec succès :

    label.setIcon(new ImageIcon(MainFrame.class.getResource("/resources/header.jpg")));
    URL url = getClass().getResource("/resources/header.jpg");
    Image image = Toolkit.getDefaultToolkit().getImage(url);
    label.setIcon(new ImageIcon(image));
    try
    {
        label.setIcon(new  ImageIcon(ImageIO.read(getClass().getResource("/resources/header.jpg"))));
    }
    catch (IOException e1)
    {
        e1.printStackTrace();
    }

    3. Configuration du chemin de construction :

    Si les ressources ne se trouvent pas directement dans le dossier source, assurez-vous qu'elles sont incluses dans le chemin de construction :

  • Cliquez avec le bouton droit sur le projet et sélectionnez "Chemin de construction" > "Configurer le chemin de construction". ≪/li>
  • Dans l'onglet "Sources", cliquez sur "Ajouter un dossier" et accédez au dossier des ressources. ≪/li>
  • Cela ajoutera le contenu du dossier de ressources au chemin de construction.
  • 4. Configuration d'exécution :

    Lors de l'exportation en tant que JAR exécutable, sélectionnez la configuration d'exécution appropriée. Cette configuration doit correspondre à la classe principale que vous exécutez dans Eclipse.

    5. Fichier manifeste :

    Assurez-vous que le fichier manifeste contient les propriétés suivantes :

    Rsrc-Class-Path: ./
    Class-Path: .
    Rsrc-Main-Class: <main class>
    Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

    Exemple :

    L'exemple suivant montre comment pour charger avec succès une image nommée "stackoverflow.png" à partir d'un dossier de ressources :

    Fichier Structure :

    - src
      - com.stackoverflow.test
        - Main.java
        - resources
          - stackoverflow.png

    Code :

    package com.stackoverflow.test;
    
    import javax.swing.*;
    
    public class Main {
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable(){
                public void run() {
                    URL url = Main.class.getResource("/resources/stackoverflow.png");
                    ImageIcon icon = new ImageIcon(url);
                    JFrame frame = new JFrame();
                    frame.add(new JLabel(icon));
                    frame.pack();
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setLocationRelativeTo(null);
                    frame.setVisible(true);
                }
            });
        }
    }

    Export :

    Cliquez avec le bouton droit sur le projet et sélectionnez "Exporter" > "Fichier JAR exécutable". Configurez la configuration de lancement appropriée et exportez le JAR.

    Résultat :

    L'exécution du JAR exporté devrait afficher l'image "stackoverflow.png" avec succès.

    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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn