Přeskočit na obsah

Převod souboru ZIP do JAR

Zabalte ZIP znovu jako JAR, přidejte Java metadata a otestujte spustitelné archivy.

Převádějte soubory ZIP online

Pro převod ZIP do JAR zatím vlastní online konvertor nemáme, ale soubory ZIP můžete online převést do těchto a dalších formátů:

Chcete převádět ZIP na JAR?

Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.

Jak převést soubor zip do formátu jar

Java runtime, mod loader nebo plugin system může vyžadovat soubor .jar namísto archivu .zip. Protože JAR používá kontejner ZIP, jednoduché přebalení je obvykle bezztrátové, ale spustitelný JAR také potřebuje zkompilované třídy a platný manifest.

Co je formát ZIP

ZIP je komprimovaný archiv pro obecné použití, který slouží ke sdružování souborů a složek pro stahování, sdílení, zálohování a ukládání. Windows File Explorer, macOS Archive Utility, správci archivů v Linuxu, 7-Zip, WinZip a vývojové nástroje vytvářejí soubory ZIP. ZIP může obsahovat zdrojový kód, dokumenty, obrázky, zkompilované třídy, knihovny nebo jiné archivy, ale nevyžaduje metadata specifická pro Java ani konkrétní strukturu adresářů.

Co je formát JAR

JAR neboli Java Archive je archiv založený na formátu ZIP pro Java třídy, prostředky, knihovny a aplikace. Může obsahovat META-INF/MANIFEST.MF, adresáře balíčků, soubory digitálních podpisů a obsah Java s podporou více vydání. Spustitelný JAR vyžaduje položku v manifestu, například Main-Class: com.example.Main, která umožňuje jeho spuštění pomocí java -jar. Java nástroje, build systems, application servers, mod loaders a plugin systems mohou vyžadovat příponu .jar, i když jsou soubory uvnitř kompatibilní s formátem ZIP.

Jak vytvořit nespustitelný JAR

  1. Nainstalujte JDK pro příkaz jar nebo nainstalujte desktopový nástroj pro práci s archivy, například 7-Zip.
  2. Rozbalte ZIP do dočasného adresáře. Nevkládejte původní ZIP do nového archivu.
  3. Zkontrolujte strukturu rozbalených souborů. Pokud ZIP obsahuje jeden nepotřebný adresář nejvyšší úrovně, použijte pouze obsah tohoto adresáře, pokud přijímající software očekává soubory v kořenu JAR.
  4. Otevřete terminál v nadřazeném adresáři rozbalené složky a spusťte jar --create --file output.jar -C extracted-folder .. Ve starších vydáních JDK použijte jar cf output.jar -C extracted-folder ..
  5. Prohlédněte výsledek pomocí jar --list --file output.jar a ověřte, že cesty balíčků a prostředky jsou umístěny tam, kde je aplikace očekává.

V nástroji 7-Zip zvolte Extract to <folder>, otevřete rozbalenou složku, vyberte její obsah a zvolte 7-Zip → Add to archive. Jako formát archivu vyberte ZIP a poté přejmenujte výsledek z output.zip na output.jar pouze v případě, že cílový software potřebuje příponu JAR. Vznikne JAR kompatibilní se ZIP, ale nebude spustitelný ani nebude obsahovat metadata Java.

Jak vytvořit spustitelný JAR

  1. Zkompilujte zdrojové soubory Java pomocí JDK. Zdrojový soubor, například Main.java, není spustitelný jen proto, že je umístěn v JAR.
  2. Zachovejte cesty balíčků: třída deklarovaná jako package com.example; patří do umístění com/example/Main.class.
  3. Vytvořte prostý textový soubor MANIFEST.MF obsahující Main-Class: com.example.Main a zakončený koncovým znakem nového řádku. Hodnota musí obsahovat název třídy, nikoli název zdrojového souboru, a nesmí obsahovat .class.
  4. Vytvořte archiv pomocí jar --create --file app.jar --manifest MANIFEST.MF -C extracted-folder .. V novějších verzích JDK lze pomocí jar --create --file app.jar --main-class com.example.Main -C extracted-folder . nastavit tuto položku bez samostatného souboru manifestu.
  5. Otestujte jej pomocí java -jar app.jar. Chybějící třída, nesprávná cesta balíčku, chybný manifest, chybějící závislost nebo nesprávný název hlavní třídy zabrání spuštění.

U projektů Maven nebo Gradle použijte sestavení projektu namísto přebalení libovolného ZIP: mvn package nebo gradle build může zkompilovat třídy a vytvořit požadovaný manifest. Běžný JAR automaticky neobsahuje externí závislosti; pokud je vyžadován samostatný JAR obsahující vše potřebné, použijte konfiguraci assembly nebo shading podporovanou projektem.

Online a desktopové nástroje

Nástroj JDK jar je nejspolehlivější volbou, protože zachovává konvence Java archivů a podporuje manifesty. 7-Zip je vhodný pro přebalování a kontrolu nespustitelných archivů. Pro konverzi prováděnou pouze v prohlížeči lze u necitlivých souborů použít archivní službu, například online konvertor od Aspose, ověřte však, že jeho aktuální seznam formátů výslovně nabízí výstup JAR. Nenahrávejte zdrojový kód, proprietární knihovny, podpisové klíče, přihlašovací údaje ani jiný citlivý obsah archivů.

Omezení kompatibility

Přejmenování ZIP nezkopiluje kód Java, nevytvoří manifest, nezmění cesty balíčků ani nepřidá závislosti. Opětovné sestavení obvykle zachová obsah souborů bez ztráty kvality, nastavení komprese, časová razítka, oprávnění, šifrování a metadata archivu se však mohou změnit. Šifrování ZIP není standardním požadavkem pro soubory JAR a zašifrovaný vstup nemusí přežít opětovné sestavení pomocí JDK.

Přebalení podepsaného JAR zneplatní jeho podpis, protože obsah archivu a metadata podpisu si již nebudou odpovídat. Zachovejte původní strukturu adresářů, po vytvoření archiv zkontrolujte a otestujte jej s přesnou verzí Java a přijímajícím softwarem, který jej bude používat.

ZIP vs JAR: srovnání formátů

Jak si formáty ZIP a JAR stojí v nejdůležitějších vlastnostech pro tento převod.

Srovnání souborových formátů ZIP a JAR
Vlastnost .ZIP ZIP archive .JAR Java Archive
Komprese Obojí Obojí
Poměr komprese Střední Střední
Šifrování Ano Ano
Rozdělené archivy Ano Ne
Obnovovací záznam Ne Ne
Podpora operačního systému Široká Široká
Typická velikost souboru Střední Střední
Otevřený standard Ano Ano
Zavedeno 1989 1996
Vývojář Phil Katz / PKWARE Oracle (originally Sun Microsystems)
MIME typ application/zip application/java-archive

Informace o příponách a typech souborů poskytuje File-Extensions.org

Často kladené otázky

Změní převod ZIP na JAR soubory uvnitř?

Obvykle ne; JAR je archiv ZIP s metadaty specifickými pro Javu. Soubory a struktura adresářů se obecně zachovají, i když pod META-INF může být přidán manifest.

Bude můj ZIP po převodu na JAR spustitelný?

Ne, změna přípony a nové zabalení archivu z něj neudělá spustitelný soubor. JAR potřebuje zkompilované třídy Javy a manifest, který určuje správnou hlavní třídu.

Proč se u převedeného JAR zobrazuje „no main manifest attribute“?

K tomu dochází, když archivu chybí položka manifestu určující, kterou třídu spustit. ZIP lze znovu zabalit jako JAR, aniž by obdržel metadata Javy potřebná k přímému spuštění.

Sníží převod ZIP na JAR kvalitu nebo zmenší archiv?

Kvalitu souborů nesníží a velikost obvykle zůstane podobná, protože oba formáty používají kompresi ZIP. Přesný výsledek závisí na původní kompresi a případném přidaném manifestu nebo metadatech Javy.

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.