Error invalid or corrupt jarfile

Résolu
t -  
 t -
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

4 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
0
t
 
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
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > t
 
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.
0
t
 
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 ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > t
 
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.
0
t
 
InnoSetup, Wix...

OK cool, je vais regarder cela et reviens vers vous
0
t
 
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 ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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.
0
t
 
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.
0
t
 
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
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Ceci n'est pas un problème Java, tu devrais plutôt poser cette question dans un autre forum (Windows par exemple).
0
t
 
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
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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.
0
Scripteur
 
Voici ce que j'ai utilisé pour faire mon setup :

https://www.advancedinstaller.com/user-guide/tutorial-java.html
0
t
 
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
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"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.
0
t
 
Bonjour,

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

Merci.
0