1 votes

Utilisation de `jar` pour créer un fichier "zip" Mac ne veut pas ouvrir le zip, il dit "It is an unsupported format" pourquoi ?

J'ai un système de construction avec un fichier batch en ligne de commande qui utilise jar (de Java JDK) sur une machine Windows pour créer un fichier zip comme celui-ci ...

jar cf c:\target\Application-1.5.zip -C Application-1.5/ .

Il "zippe" tout ce qui se trouve dans le Application-1.5 dans le fichier zip Application-1.5.zip .

J'ai utilisé jar car il n'y a pas de zip à la ligne de commande sous Windows.

Lorsque je télécharge le fichier zip sur une machine Windows 10, Windows extrait bien le fichier zip.

Cependant, lorsque je télécharge le fichier zip sur mon MacBook (Catalina) et que je double-clique sur le fichier zip, le Mac refuse de décompresser le fichier ... il dit ... "Unable to expand "Application-1.5.zip". Il s'agit d'un format non pris en charge.

Aussi ... quand j'utilise la commande jar sur le Mac pour le décompresser comme ceci jar -xf ./Application-1.5.zip il fonctionne, le fichier est donc "valide" mais le décompresseur intégré de Mac ne l'apprécie pas.

Que dois-je faire pour créer un fichier zip qui plaira à Mac ?

1voto

0942v8653 Points 6754

Merci d'avoir posé cette question intéressante.

En regardant sous le capot d'Archive Utility, il s'avère qu'il fait deux choses pour vérifier le type de fichier :

  1. Vérifiez l'extension du fichier : .zip dans votre cas.
  2. Vérifier la magie du fichier en utilisant /usr/bin/file .

Pour que le fichier soit détecté comme un fichier zip valide, le résultat de la magie des fichiers doit indiquer "Zip archive data". Je suppose que les développeurs de l'utilitaire d'archivage n'ont pas voulu s'appuyer sur l'extension du fichier pour déterminer s'il s'agit d'un fichier zip. file de la production.

Vous pouvez connaître la file qui a été produite en définissant les paramètres suivants defaults clé :

$ defaults write com.apple.archiveutility log-commands -bool TRUE

et ouvrir le fichier dans l'utilitaire d'archivage. La sortie s'affichera alors dans le journal du système (Console.app).

Archive Utility  magic: "Desktop/test/empty_jar.zip" -> "Java archive data (JAR)

(Vous pouvez également exécuter file asdf.zip pour découvrir la magie).

Vous pouvez constater que file a détecté le zip comme un fichier JAR, et non comme un fichier Zip. Il s'agit en quelque sorte d'une "caractéristique" du format JAR, qui est un fichier Zip mais qui peut avoir un nom de fichier spécial. 0xcafe étiquette . Cette étiquette semble être un peu un terrier de lapin, mais il suffit de dire que la jar l'ajoute aux fichiers qu'il génère.

Remarque : je travaille sous High Sierra. YMMV avec d'autres versions.

Une autre façon de générer des fichiers Zip sous Windows est d'utiliser la fonction Powershell Compresser l'archive . D'autres lecteurs voudront peut-être se renseigner sur cette solution, qui ne nécessite pas l'installation d'un logiciel.

0voto

AvaTaylor Points 111

J'ai contourné mon problème en installant 7-zip sur Windows 10 et en l'utilisant à la place de jar comme ça ...

7z a c:\target\Application-1.5.zip .\Application-1.5\* -r 

Mac aime le fichier zip produit par 7-zip, donc cela fonctionnera pour moi.

Mais j'aimerais quand même savoir comment créer un fichier zip avec jar que l'archive par défaut de Mac peut décompresser.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X