Konverze jar do java

Převod souboru JAR do JAVA

Extrahujte vložený zdrojový kód nebo dekompilujte třídy JAR do použitelných zdrojových souborů Java.

Převádějte soubory JAR online

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

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

Zdrojové soubory jsou potřebné v případě, že JAR je jedinou dostupnou kopií Java knihovny nebo aplikace a její kód je nutné prozkoumat, auditovat, upravit nebo znovu sestavit. Většina release JARů obsahuje zkompilované soubory .class, takže obnovení souborů .java obvykle vyžaduje dekompilaci, nikoli přímý převod souborů.

Co obsahuje soubor JAR

JAR (Java Archive) je archiv založený na formátu ZIP, který Java vývojáři, build tools a dodavatelé aplikací používají k distribuci knihoven, pluginů a aplikací. Běžně obsahuje zkompilované třídy, zdroje, metadata závislostí a META-INF/MANIFEST.MF; spustitelné JARy mohou v tomto manifestu deklarovat startup class.

JDK tools, Maven, Gradle, Eclipse a IntelliJ IDEA mohou vytvářet nebo používat JARy. Samostatný archiv s názvem name-sources.jar často obsahuje původní zdrojové soubory a měl by být použit namísto dekompilace zkompilovaného JARu.

Co je soubor JAVA

Neexistuje samostatný binární formát „JAVA“. Soubor .java je prostý text obsahující Java source code s třídami, rozhraními, metodami, deklaracemi package a importy. Lze jej upravovat a kompilovat pomocí javac, pokud jsou k dispozici požadované knihovny a příslušná Java release level.

Jeden JAR obvykle vytvoří mnoho zdrojových souborů. Jejich složky by měly odpovídat názvům package: com.example.Main patří do com/example/Main.java. Java vyžaduje, aby public top-level class používala stejný název souboru jako tato třída.

Nejprve extrahujte existující zdrojový kód

Vypište obsah archivu pomocí JDK příkazu jar:

jar tf app.jar

Pokud výpis obsahuje soubory .java, extrahujte je do prázdného pracovního adresáře:

mkdir recovered-src
cd recovered-src
jar xf ../app.jar

Pokud je k dispozici odpovídající source archive, extrahujte místo něj tento archiv:

jar xf app-sources.jar

Nezaměňujte zdroje, jako jsou .properties, XML files, images nebo service definitions, za Java source. Pokud je projekt potřebuje, extrahujte je, nelze je však převést na smysluplný kód .java.

Dekompilace zkompilovaných tříd

Pokud JAR obsahuje pouze soubory .class, použijte desktopový Java decompiler. CFR je vhodná command-line možnost a obecně si s novějším Java bytecode poradí lépe než mnoho starších decompilerů. Stáhněte CFR z jeho oficiálního project site a poté spusťte:

java -jar cfr.jar app.jar --outputdir recovered-src

CFR zapíše obnovené soubory .java do složky recovered-src. Jako graphical option otevřete JAR v JD-GUI a vyberte File → Save All Sources; JD-GUI vytvoří ZIP archive, který je nutné před otevřením souborů v IDE extrahovat.

IntelliJ IDEA dokáže pro účely kontroly zobrazit dekompilované třídy, ale pokud je vyžadován exportovatelný source tree, jsou vhodnější CFR nebo JD-GUI. U malých, veřejných a necitlivých samples lze JARy dekompilovat bez lokální instalace pomocí browser services, jako je Decompiler.com; před odesláním čehokoli si ověřte jeho podmínky uchovávání a ochrany soukromí.

Omezení kompilace a obnovení

Dekompilovaný výstup není původní source project. Bytecode nezachovává komentáře, formátování, většinu názvů lokálních proměnných, test sources, build scripts, historii version control a některé informace o generických typech. Obfuscation může smysluplné názvy nahradit identifikátory, jako jsou a a b.

Obnovené soubory se nemusí okamžitě zkompilovat. Přidejte původní dependencies JARu, generated code, annotation processors, resources a compiler options; poté kompilujte pro Java release použitou původními třídami. Novější class-file version může vyžadovat novější JDK a decompiler, který tuto verzi podporuje.

Multi-release JARy mohou obsahovat alternativní implementace tříd ve složce META-INF/versions/ a shaded JARy mohou vedle kódu aplikace obsahovat také dependencies. Než začnete každou obnovenou třídu považovat za součást jednoho source projectu, zkontrolujte strukturu package a manifest.

Soukromé, zákaznické, licencované nebo bezpečnostně citlivé JARy ponechte na lokálním počítači místo jejich odesílání do online decompileru. Dekompilujte pouze software, který vlastníte nebo k jehož kontrole máte oprávnění; na obnovený kód se nadále vztahují původní licenční a autorská práva.

Stručně řečeno, nelze přímo jednoduchým způsobem zkonvertovat soubor JAR do JAVA souboru.
Proto pravděpodobně nenaleznete konverzní utilitu nebo zdarma online stránky/službu, která umí převést soubory .jar na .java. Určitě lze nalézt webovou službu, která tuto konverzi slibuje online a zadarmo, ale pravděpodobně je to podvodná stránka slibující něco, co jednoduše nelze.

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

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

Srovnání souborových formátů JAR a JAVA
Vlastnost .JAR Java Archive .JAVA Java source code file
Otevřený standard Ano Částečně otevřený
Komprese Obojí Bez komprese
Typická velikost souboru Střední Malé
Otevírá se ve webovém prohlížeči Ne Ne
Další úpravy Omezeně Snadné
Podpora metadat Základní Základní
Čitelný jako prostý text Ne Ano
Nejvhodnější pro Vkládání do aplikací Profesionální produkce
Zavedeno 1996 1995
Vývojář Oracle (originally Sun Microsystems) Oracle (Java platform; originally Sun Microsystems)
MIME typ application/java-archive text/x-java-source

Podobné .jar konverze

Reverzní konverze

Konverze do .java
z jiných formátů

Sdílejte na sociálních sítích: