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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found
    Bonjour,

    bien que développant depuis longtemps en java, je suis toujours débutant en mise à jour d’Eclipse et en constitution de jar exécutable : j'utilise
    depuis toujours l'export "Runnable jar file"" pour constituer mes exécutables

    mon projet:
    j'utilise une application java pour produire des fichiers PDF en utilisant Fop comme constituant Eclipse, incluant des images

    mon problème:
    1 : quand j'exécute mon application depuis l'ide Eclipse, elle produit le fichier résultat correctement
    2 : quand je l’exécute comme application Windows elle produit l'erreur

    org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for file:

    3 ; mon environnement
    Windows 10 processeur 64 bits

    java version "1.8.0_241"
    Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

    Eclipse
    Version: Photon Release (4.8.0)
    Build id: 20180619-1200

    fop 2.0

    la chaine de liaison du projet appelant fop


    Merci pour vos réponses
    Cordialement,
    G. Pêche
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    12 193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 12 193
    Points : 20 647
    Points
    20 647
    Par défaut
    Hello,

    concrètement, comment utilises-tu l'export "Runnable jar file" ?
    En principe, un fichier .jar exécutable ne contient pas de bibliothèque tierce, et si les bibliothèques tierces ne sont pas là, on ne peut pas s'en servir.

    Il existe un certain nombre de manières d'avoir un jar exécutable avec bibliothèques tierces, mais quelle que soit celle choisie, il faut le faire correctement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    merci pour ta réponse

    j'utilise l'option :"Extract required libraries into generated jar

    Cordialement,

    G. Pêche

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    en continuant à chercher sur internet j'ai vu qu'un problème similaire se produisait avec le version 1.8 de batik

    j'ai donc fait une mise à jour et suis passé de fop 2.0 à fop 2.4

    voici le nouvel "build path"
    Images attachées Images attachées  

  5. #5
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 487
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 487
    Points : 2 612
    Points
    2 612
    Par défaut
    Si le programme fonctionne en Eclipse déjà, passant de 2.0 à 2.4 etc ne serrait pas la cause du problème.

    Si vous avez un programme réduit complet contenant tous les éssentiels, on verrait regarder de plus près. Sinon, dans les cas où le programme soit débogué en Eclipse et un fichier jar exécutable soit exporté et qu'on fasse exécuter avec avec une ligne de commande dehors comme java -jar ... , il faut toujours faire attention aux écritures dedans le programme même sur les issus comme comment les classes soient chargées, comment une classe qui fasse charger les ressources comme stream, où se trouvent les ressources et je-ne-sais-quoi d'autres. Et on ne peut pas deviner tout ça, je pense.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    12 193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 12 193
    Points : 20 647
    Points
    20 647
    Par défaut
    Citation Envoyé par peche Voir le message
    j'utilise l'option :"Extract required libraries into generated jar
    Mouais. Bon, il faudrait regarder en détail pour être sûr, mais :

    - cette méthode est connue pour très mal marcher avec l'API services de Java
    - les ImagePreloader disponibles sont trouvés avec l'API services de Java

    Il y a de bonnes chances que ce soit le problème.

    Tu devrais déjà vérifier si ça marche mieux en n'incluant pas les bibliothèques externes dans le jar.
    A la place tu les spécifies avec le classpath, soit en ligne de commande soit dans le META-INF du jar exécutable.

    Si oui, ben le problème venait de là.

    Il y a moyen de faire des jars qui contiennent leurs propres dépendances et qui n'ont pas ce problème. Mais en ce qui me concerne je n'en connais qu'un seul : le plugin maven/gradle de spring boot. Quand on lui fait générer un jar qui contient une application Spring, il met dedans toutes les dépendances, avec un chargeur ad hoc compatible avec l'API service.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 487
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 487
    Points : 2 612
    Points
    2 612
    Par défaut
    @peche
    Quand j'ai posté auparavant, je n'ai pas vu les infos attachés à la question originale. Ils sont cachés pour les personnes pas s'identifiées. Comme je peux lire la question complète depuis, je peux faire une première remarque. Dans l'image postée, je vois que vous avez deux dépendences en jar d'apache servicemix. Il faut mettre des fop v2.0 jar et ses bibliothèques en priorité. Essayez d'enlever ces deux dépendences d'apache servicemix si servicemix n'est pas tout à fait nécessaire ou au moins pour le but de tester au premier étape d'un jar exécutable.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour vos réponses

    j'ai été long à répondre car je vous avais préparer un zip du projet

    je viens d’essayer d'enlever servicemix fop : ça ne compile plus car j’utilise les classe fop et fopfactory

    j'ai cherché à les récupérer mais il ne sont présents que sous maven que je n'utilise pas

    je ne sais pas faire

    Cordialement

    G. Pêche

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour thelvin,

    Merci pour ta réponse

    je ne sais pas faire un meta_inf

    je vois que les jar fop et xmlgraphics du jar executable sont avec maven que je ne connais pas

    Cordialement

    G. Pêche

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    en attendant de vos nouvelles, je me suis mis à Maven avec un tutoriel trouvé sur developpez.com

    j'espère ainsi être moins nul en projet fini

    Cordialement,

    G. Pêche

  11. #11
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 487
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 487
    Points : 2 612
    Points
    2 612
    Par défaut
    je viens d’essayer d'enlever servicemix fop : ça ne compile plus car j’utilise les classe fop et fopfactory
    servicemix est en gros un conteneur intégrateur des services (souvent lié aux sujet, dit, d'esb), donc, il est naturel qu'il peut y avoir built-in pour fop service ... et bien d'autres évidemment. Il n'a rien à voir avec une simple application de fop tout seule, ça, je suis parfaitement sûr.

    Si à quelque instance vous avez bien réussi à faire marche une simple application fop (avec servicemix intervenant ou pas) dans Eclipse et vous pouvew faire exporter un jar exécutable. Vous faites voir le jar et son MANIFEST.MF et ce serait une bonne leçon pour vous. Si le jar ne peut pas exécuter, on peut partir de là parce que ce n'est pas nécessairement marché et c'est ce que je veux dire dans mon première réponse.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    je n'ai pas réussis à vous envoyer le fichier manifest du projet simplifié : il m'indique fichier invalide

    je vous ai mis la classe java que j'utilise pour générer mes fichier PDF

    elle utilise les classe Fop et FopFactory

    peut être pouvez vous me montrer comment faire pour s'en passer

    je n'ai pas trouver dans les librairies de FOP (2.0 ou 2.4) de package contenant ces classes

    de plus toutes les jars disponible sur internet sont tous sous maven

    d'ailleurs pour ne plus avoir ces problèmes je vais peut être mettre mes projets sous maven

    Cordialement,

    G. Pêche
    Fichiers attachés Fichiers attachés

  13. #13
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 487
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 487
    Points : 2 612
    Points
    2 612
    Par défaut
    elle utilise les classe Fop et FopFactory
    peut être pouvez vous me montrer comment faire pour s'en passer
    je n'ai pas trouver dans les librairies de FOP (2.0 ou 2.4) de package contenant ces classes
    Comment ça ? On ne s'en passe pas. Et on trouve bien org.apache.fop.apps.Fop.class et org.apache.fop.apps.FopFactory.class dans fop.jar même depuis toujours.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    bonjour thelvin,

    j'ai essayé de faire un jar exécutable en copiant les jar référencés dans une librairie à part

    je ne suis pas arrivé à le faire fonctionner :

    D:\Users\Gilbert\sauvegarde\202004117\application>java -jar CommunPDF.jar D:\\Users\\Gilbert\\ds\\ldc_Christine listedatedecours.xsl -PDF
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    FopFactory cannot be resolved to a type
    FopFactory cannot be resolved
    Fop cannot be resolved to a type

    at org.ateliermyosotis.commun.pdf.FopTransformeur.transformePDF(FopTransformeur.java:40)
    at org.ateliermyosotis.commun.pdf.Lanceur_FOP.main(Lanceur_FOP.java:10)
    j'ai essayé de copier les 2 jar org.apache.servicesmix dans le répertoire mais cela ne charge rien

    j'ai modifié le classpath dans le fichier manifest

    Manifest-Version: 1.0
    Class-Path: . CommunPDF_lib/avalon-framework-4.2.0.jar CommunPDF_lib/b
    atik-all-1.8.jar CommunPDF_lib/commons-io-1.3.1.jar CommunPDF_lib/com
    mons-logging-1.0.4.jar CommunPDF_lib/fontbox-1.8.5.jar CommunPDF_lib/
    serializer-2.7.0.jar CommunPDF_lib/xalan-2.7.0.jar CommunPDF_lib/xerc
    esImpl-2.7.1.jar CommunPDF_lib/xml-apis-1.3.04.jar CommunPDF_lib/xml-
    apis-ext-1.3.04.jar CommunPDF_lib/xmlgraphics-commons-2.0.1.jar Commu
    nPDF_lib/org.apache.servicemix.bundles.fop_1.1.0.2
    Main-Class: org.ateliermyosotis.commun.pdf.Lanceur_FOP
    mais rien n'y fait

    Cordialement,
    G. Pêche

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    12 193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 12 193
    Points : 20 647
    Points
    20 647
    Par défaut
    Hello, ça n'a aucun sens ton truc, tu me dis que tu essaies de lancer un jar exécutable, et que ça fait une erreur de compilation ??

    Si la compilation ne marche pas, il n'y a pas de jar.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    bonjour tsuji
    ,

    je viens de faire l'essai en supprimant servicemix et en mettant le fop.jar à la place

    j'ai fait l'export d'un jar exécutable en mettant les jar dans le jar exécutable

    cela fonctionne sous Eclipse mais pas en ligne de commande : même problème que précédemment

    Cordialement,

    G. Pêche

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    bonjour thelvin, bonjour tsuji,

    en faisant un jar exécutable sans les librairies incluses à l’intérieur mais dans une librairie séparée cela fonctionne

    merci à tous les deux

    Cordialement

    G. Pêche
    Images attachées Images attachées  

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    j'ai crié victoire trop tôt

    quand j'intègre les modifications au projet réel le problème réapparait

    Cordialement,

    G. Pêche

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    le problème venait de la présence d'un autre jar de xerces et de xml-api dans des versons différentes.

    quand j'ai retiré ces jar d'autres versions le programme s'est mis à fonctionner

    Cordialement
    G. Pêche

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

Discussions similaires

  1. [Eclipse] the sdk layoutlib is not supported
    Par youcef2007 dans le forum Android
    Réponses: 0
    Dernier message: 08/08/2018, 18h06
  2. Réponses: 5
    Dernier message: 07/06/2010, 11h18
  3. Réponses: 0
    Dernier message: 25/04/2010, 02h27
  4. Réponses: 5
    Dernier message: 17/11/2008, 17h10
  5. Visual Studio : The project type is not supported by this installation
    Par ours_grognon dans le forum Visual Studio
    Réponses: 1
    Dernier message: 06/09/2007, 18h18

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