Error invalid or corrupt jarfile [Résolu]

Error invalid or corrupt jarfile Serveur Selenium Invalid or corrupt jarfile /opt/selenium » Forum - Linux / Unix Error 13 ds le grub (Résolu) » Forum - Linux / Unix Excel - error : Invalid procedure call or argument » Forum - Excel Error 13 invalid or unsupprted excecutable » Forum - Linux / Unix Error 13: invalid or unsupported executable [Résolu] » Forum - Bases de données

Bonjour à tous,

Lorsque je tente de faire un package appx comprenant l'application et le Runtime Java et que je lance l'application, j'obtiens l'erreur suivante:

error invalid or corrupt jarfile C:\Program Files\WindowsApps\Éditeur.logiciel_1.0.0.0_x64\VFS\Program FilesX86\Éditeur\logiciel\logiciel.exe.

J'utilise JRE 8 32 bit, or, le package appx est configuré par défaut en 64 bit

Pensez-vous que cela à un rapport ?

Auriez-vous une idée pour réparer cela s'il vous plait ?

Merci

Forum

Error invalid or corrupt jarfile Serveur Selenium Invalid or corrupt jarfile /opt/selenium » Forum - Linux / Unix Error 13 ds le grub (Résolu) » Forum - Linux / Unix Excel - error : Invalid procedure call or argument » Forum - Excel Error 13 invalid or unsupprted excecutable » Forum - Linux / Unix Error 13: invalid or unsupported executable [Résolu] » Forum - Bases de données

Web: www.shapebootstrap.net

23 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

C'est quoi un package appx ? J'ai regardé un peu sur Google et je suis tombé sur une technologie Windows, mais quel rapport avec Java ? Qu'est-ce que tu cherches à faire ?

En Java, tu peux utiliser cette commande du JDK :

javapackager -makeall -appclass NomDeLaClasseMain -name NomDuProjet

Remarque : tu dois faire cette commande dans le dossier qui contient le répertoire "src" où sont tes .java
Cela va compiler le projet et l'encapsuler dans différents formats, notamment un installeur .exe qui contient une copie de la JRE pour ton projet et l'installera sur le système cible.

Voir la documentation : Self-Contained Application Packaging

Reply
réponses:
  • auteur

  • auteur

    Bonjour,

    C'est quoi un package appx ?


    Il s'agit des installateurs plateforme Windows universelle que doivent fournir les développeurs pour déployer leur soft sur le Microsoft Store (c'est comme un *.MSI mais pour le Store)


    mais quel rapport avec Java


    Microsoft exige que les développeurs intègre le Runtime Java dans leurs Packages pour que le client n'est plus qu'à cliquer.

    Qu'est-ce que tu cherches à faire


    Un package d'application *.appx fonctionnel

    Donc, si j'utilise cette commande, cela fonctionnera ?

    javapackager -makeall -appclass NomDeLaClasseMain -name NomDuProjet


    Dans quoi dois-je le mettre( un bat, un .java) ?

    Le fait que le package soit en 64 bit e que le Runtime soit en 32 bit ne pose pas probleme ?

    Merci

  • KX

    Si tu utilises la commande que je t'ai donné tu auras un fichier .exe qui contient un installeur (impression écran ci-dessous) qui copiera le JRE, le JAR, et créera des raccourcis pour y accéder.


    Si ta JRE est en 32 bits ça copiera une JRE 32 bits sur le poste client, le fait que le package soit en 64 bits ne devrait rien changer, même si c'est dommage de ne pas mettre une JRE 64 bits directement...

    Quant à la commande tu peux la taper directement dans une invite de commande, ou éventuellement la mettre un .bat pour la conserver, mais ce n'est pas utile plus que ça.

  • auteur

    Avec ce Setup, je ne peut pas y introduire d'autre fichier (exe, bat...) qui accompagne le logiciel par hasard ?

    Aussi, puis-je y mettre une application java convertie en exe ?

  • KX

    Il faut regarder la documentation que je t'ai donné pour voir les cas d'usages avancés.
    Il est notamment possible d'utiliser des logiciels tiers (InnoSetup, Wix) pour faire des installeurs plus poussés.

  • auteur

    InnoSetup, Wix...

    OK cool, je vais regarder cela et reviens vers vous

  • KX

    Remarque : une JRE c'est standalone, il n'y a rien besoin d'installer sur un système pour qu'elle fonctionne, tu peux juste la décompresser et mettre tout son contenu (exe, dll, ...) directement dans ton package avec tout le reste de ton code.

    Il faudra juste faire un bat ou équivalent qui lance la commande java -jar en faisant référence au java.exe de la JRE ainsi compressée (c'est ce que fait la commande javapackager)

    NB. "puis-je y mettre une application java convertie en exe ?"
    Ça n'a pas de sens de convertir une application en exe, ce sera ni plus ni moins ce que l'on essaye de faire, c'est à dire un copier-coller d'une JRE avec ton JAR.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonsoir,

J'ai donc réussi à faire un setup en lisant la doc cependant lorsque je package le tout en appx,
l’erreur resurgit, sauriez vous ce que signifie l'erreur en question (celle du titre) et das quel cas l'on peut s'en débarrasser s'il vous plaît ?

Aussi, jar2exe me permettrait-il d’exécuter un jar sans le Runtime ou non ?

Reply
réponses:
  • KX

    L'erreur "invalid or corrupt jarfile C:\...\logiciel.exe" en soit est assez simple, tu démarres un jar qui est un .exe
    Ça ne peut pas être bon ! Pour lancer un jar il faut que ce soit un jar...

    Remarque : jar2exe va faire la même chose que javapackager, il va copier la JRE dans un exe, parce qu'il n'y a pas de magie en Java, d'une manière ou d'une autre il te faudra une JRE.

  • auteur

    Bonsoir,

    Finalement j'avais déjà trouvé une solution dimanche et je tiens à vous en faire part au cas ou cela resurgit à l'avenir vu le manque de documentation sur ce sujet...

    J'ai utilisé Advanced Installer en créant un package d'application pour application java (prenant en compte les jar converti en exe),

    Il s'agit d'une fonctionnalité java application Installer disponible dans le logiciel

    La méthode utilisée pour réaliser le package est similaire à celui de jar2exe.

    Ensuite, il suffit de cliquer sur UWP Appx build sur la barre de menu.

    Voilà, c'est aussi simple que ça,

    La licence ne coûte que 200 €

    Merci pour vos conseils.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Je reviens vers vous car lorsque je fais un test de conformité,

J'obtiens l’erreur suivante dans le fichier htm généré:


ÉCHEC
Vérification du Registre
Erreur détectée : Les vérifications de registre ont détecté les erreurs suivantes :

Plusieurs fichiers de Registre trouvés.

Impact si aucune correction n'est effectuée : Les applications ne doivent pas installer de pilotes ni de services NT.
Comment corriger : N'installez pas de pilotes ni de services NT.


Merci pour votre aide

Reply
réponses:
  • KX

    Bonjour,

    Ceci n'est pas un problème Java, tu devrais plutôt poser cette question dans un autre forum (Windows par exemple).

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Je me permet de rouvrir ce topic car je rencontre un soucis inattendue:

J'ai réussi à créer un package fonctionel sur ma machine cependant, lorsque ce dernier est lacer sur un autre poste, voici l'erreur obtenue :

"Impossible de charger la bibliothèque Java VM: C: \ Program Files (x86) \ logiciel \ logiciel \ jre \ bin \ client \ jvm.dll (errno = 126)."

Or, j'ai intégré java runtime dans mon package MSI et n'est pas censé cherché java dans un autre programme.

Comment puis-je reglé cela s'il vous plait ?

Qu'est ce que j'ai mal fais ?

PS: j'ai supprimé tous les fichiers de registres présents dans le package (je ne sais pas si cela à une incidence quelconque )

Merci pour votre aide

Reply
réponses:
  • auteur

  • KX

    Bonjour,

    Vu comment tu t'es compliqué la vie, je ne sais pas à quel moment tu as mal fait un truc, mais de toute évidence il doit y avoir plus simple...

    Déjà, un programme Java, et même la JRE en elle même, n'utilise pas le registre. Ce sont des fichiers autonomes.
    Tu pourrais compresser la JRE, la déplacer n'importe où, l'utiliser dans un launcher (un .cmd par exemple) qui utilise la JRE en chemin relatif pour démarrer le programme Java. Et c'est tout... Un gros zip avec toute la JRE et le JAR suffit.

  • auteur

    Voici ce que j'ai utilisé pour faire mon setup :

    https://www.advancedinstaller.com/user-guide/tutorial-java.html

  • auteur

    Bonjour,

    Cette erreur peut elle concerner l'architecture de l'application ?

    En effet, j'ai installé le jre x86 dans un package ou j'ai déclaré que l'application était en x64,

    Merci pour votre aide

  • KX

    "Cette erreur peut elle concerner l'architecture de l'application ?"
    Peut-être, mais comme je l'ai déjà signalé plus haut, ce n'est plus un problème Java.
    Si tu as un problème d'architecture 32 ou 64 bits dans ton installateur Windows, c'est un problème Windows.

  • auteur

    Bonjour,

    Y'a t'il un moyen de convertir un jar 32 bit en 64 bit svp ?

    Merci.

  • KX

    Un code Java, ou un JAR, n'est pas spécifique 32 ou 64 bits, ni même spécifique Windows, Linux ou Max.

  • auteur

    Bonjour,

    J'ai converti mon application java en exe avec launch4j,

    J'ai fais le test en lançant ce dernier avec le jre x64 et il semblerait que j'ai mal configurer ce dernier,

    J'ai donc décidé de ne pas le convertir et de faire un simple raccourcis vers le bureau avec le logos du soft,

    Je tente ça et on verra bien ce qui ce passe...

  • auteur

    Re,

    Bon,

    Avant de faire un package à déposer,

    J'ai tenté de reproduire l'erreur :

    J'ai donc créer un package avec java 32 bit et un jar (converti avec launch4j configurer pour x64) et j'obtiens l'erreur souhaitée,

    Pour corriger l'erreur,

    J'ai tout fais pareil sauf que là, j'ai juste mis un jar capable de s'exécuter sur x64 et x86 (configuration du package),

    Cela semble fonctionner,


    Pensez vous que l'erreur était du à cela vous aussi ?

    Merci

  • KX

    "un jar capable de s'exécuter sur x64 et x86"
    N'importe quel jar peut s'exécuter sur n'importe quelle architecture... c'est le principe de base de Java.
    Toutes les erreurs que tu as autour ne sont plus liées à Java.

  • auteur

    Oui, c'est ce que je dis,

    J'ai simplement mis un .jar,

    Auparavant, je faisais un application en .exe converti avec launch4j s'exécutant en x64 seulement

    Merci

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed