bugfix> macos > 投稿

コマンドライン駆動のバッチファイルを使用したビルドシステムがあります。 jar (Java JDKから)このようなzipファイルを作成するためのWindowsマシン上で...

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

それはすべてを「圧縮」します Application-1.5 ディレクトリをzipファイルに Application-1.5.zip

使った jar ないので zip Windowsのコマンドラインでコマンドを実行します。

Windows 10マシンにzipファイルをダウンロードすると、Windowsはzipを正常に抽出します。

ただし、MacBook(Catalina)にzipファイルをダウンロードし、zipファイルをダブルクリックすると、Macはファイルを解凍しません...「...「展開できません」Application-1.5.zip "。これはサポートされていない形式です。

また... Macでjarコマンドを使用してこのように解凍すると jar -xf ./Application-1.5.zip それは機能するので、ファイルは「有効」ですが、Macの組み込みunzipperはそれを好みません。

Macが好むzipファイルを作成するにはどうすればよいですか?

回答 2 件
  • 私はWindows10に7-zipをインストールし、代わりにそれを使用することで問題を回避しました jar そのようです ...

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

    Macは7-zipで作成されたzipファイルが好きなので、これでうまくいくでしょう。

    しかし、私はまだzipファイルを作成する方法を知りたいです jar そのMacのデフォルトのアーカイブ解除は解凍できます。

  • この興味深い質問を投稿していただきありがとうございます。

    アーカイブユーティリティの内部を見ると、ファイルタイプをチェックするために2つのことをしていることがわかります。

    ファイル拡張子を確認してください。 .zip あなたの場合。

    を使用してファイルマジックを確認してください /usr/bin/file

    ファイルを有効なzipファイルとして検出するには、ファイルマジックの結果に「Zipアーカイブデータ」と表示されている必要があります。アーカイブユーティリティの開発者は、何かがzipであるかどうかを判断するためにファイル拡張子に依存することを望まなかったので、 file 出力。

    あなたは見つけることができます file 以下を設定して生成された出力 defaults キー:

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

    アーカイブユーティリティでファイルを開きます。次に、出力がシステムログ(Console.app)に表示されます。

    " Javaアーカイブデータ(JAR) "/>

    (実行することもできます file asdf.zip 自分で魔法を見つけてください。)

    あなたはそれを見ることができます file zipをZipファイルではなくJARファイルとして検出しました。これはJAR形式の一種の「機能」であり、Zipですが、特別な機能がある場合があります。 0xcafe 鬼ごっこ。このタグはうさぎの穴のようですが、 jar ユーティリティは、生成するファイルにそれを追加します。

    注:私はHighSierraを実行しています。他のバージョンのYMMV。

    WindowsでZipファイルを生成する別の方法は、PowershellのCompress-Archiveを使用することです。他の読者は、ソフトウェアをインストールする必要がないので、それをチェックしたいと思うかもしれません。

あなたの答え