Konwertuj JAR na JAVA
Wyodrębnij osadzone źródła lub zdekompiluj klasy JAR do użytecznych plików źródłowych Java.
Konwertuj pliki JAR online
Nie mamy jeszcze dedykowanego konwertera online dla JAR na JAVA, ale pliki JAR możesz przekonwertować online na te formaty:
Jak konwertować jar do java
- Programowanie
- Brak ocen.
Pliki źródłowe są potrzebne, gdy JAR jest jedyną dostępną kopią biblioteki lub aplikacji Java, a jej kod musi zostać przeanalizowany, poddany audytowi, zmodyfikowany lub ponownie zbudowany. Większość wydań JAR zawiera skompilowane pliki .class, dlatego odzyskanie plików .java zwykle wymaga dekompilacji, a nie bezpośredniej konwersji plików.
Co zawiera plik JAR
JAR (Java Archive) to archiwum oparte na formacie ZIP, używane przez programistów Java, narzędzia do budowania i dostawców aplikacji do dystrybucji bibliotek, wtyczek i aplikacji. Zwykle zawiera skompilowane klasy, zasoby, metadane zależności oraz plik META-INF/MANIFEST.MF; wykonywalne pliki JAR mogą deklarować klasę startową w tym manifeście.
Narzędzia JDK, Maven, Gradle, Eclipse i IntelliJ IDEA mogą tworzyć pliki JAR lub korzystać z nich. Oddzielne archiwum o nazwie name-sources.jar często zawiera oryginalne pliki źródłowe i powinno być używane zamiast dekompilowania skompilowanego pliku JAR.
Co to jest plik JAVA
Nie istnieje oddzielny binarny format „JAVA”. Plik .java to zwykły tekstowy kod źródłowy Java zawierający klasy, interfejsy, metody, deklaracje pakietów i instrukcje importu. Można go edytować i kompilować za pomocą javac, pod warunkiem że dostępne są wymagane biblioteki oraz odpowiednia wersja Java.
Jeden plik JAR zwykle generuje wiele plików źródłowych. Ich foldery powinny odpowiadać nazwom pakietów: com.example.Main należy umieścić w com/example/Main.java. Java wymaga, aby publiczna klasa najwyższego poziomu używała takiej samej nazwy pliku jak ta klasa.
Najpierw wyodrębnij istniejący kod źródłowy
Wyświetl zawartość archiwum za pomocą polecenia JDK jar:
jar tf app.jar
Jeśli lista zawiera pliki .java, wyodrębnij je do pustego katalogu roboczego:
mkdir recovered-srccd recovered-srcjar xf ../app.jar
Jeśli dostępne jest pasujące archiwum źródłowe, wyodrębnij je zamiast tego:
jar xf app-sources.jar
Nie myl zasobów, takich jak pliki .properties, pliki XML, obrazy lub definicje usług, z kodem źródłowym Java. Wyodrębnij je, jeśli są potrzebne w projekcie, ale nie można ich przekonwertować na znaczący kod .java.
Dekompiluj skompilowane klasy
Jeśli plik JAR zawiera wyłącznie pliki .class, użyj desktopowego dekompilatora Java. CFR jest odpowiednim narzędziem wiersza poleceń i zazwyczaj lepiej obsługuje nowszy bytecode Java niż wiele starszych dekompilatorów. Pobierz CFR z oficjalnej strony projektu, a następnie uruchom:
java -jar cfr.jar app.jar --outputdir recovered-src
CFR zapisuje odzyskane pliki .java w katalogu recovered-src. Opcją z interfejsem graficznym jest otwarcie pliku JAR w JD-GUI i wybranie File → Save All Sources; JD-GUI tworzy archiwum ZIP, które należy wyodrębnić przed otwarciem plików w IDE.
IntelliJ IDEA może wyświetlać zdekompilowane klasy do celów inspekcji, ale CFR lub JD-GUI są lepszym wyborem, gdy wymagane jest drzewo źródłowe możliwe do wyeksportowania. W przypadku małych, publicznych i niewrażliwych przykładów usługi działające w przeglądarce, takie jak Decompiler.com, mogą dekompilować pliki JAR bez instalacji lokalnej; przed przesłaniem jakichkolwiek danych sprawdź zasady przechowywania i prywatności usługi.
Ograniczenia kompilacji i odzyskiwania
Zdekompilowany wynik nie jest oryginalnym projektem źródłowym. Bytecode nie zachowuje komentarzy, formatowania, większości nazw zmiennych lokalnych, kodu testów, skryptów budowania, historii kontroli wersji ani części informacji o typach generycznych. Zaciemnianie kodu może zastąpić znaczące nazwy identyfikatorami takimi jak a i b.
Odzyskane pliki mogą nie kompilować się od razu. Dodaj oryginalne zależności pliku JAR, wygenerowany kod, procesory adnotacji, zasoby i opcje kompilatora, a następnie kompiluj dla wersji Java używanej przez oryginalne klasy. Nowsza wersja pliku klas może wymagać nowszego JDK i dekompilatora obsługującego tę wersję.
Pliki JAR obsługujące wiele wersji mogą zawierać alternatywne implementacje klas w katalogu META-INF/versions/, a zacienione pliki JAR mogą zawierać zależności razem z kodem aplikacji. Przed uznaniem każdej odzyskanej klasy za część jednego projektu źródłowego sprawdź strukturę pakietów i manifest.
Prywatne, należące do klientów, licencjonowane lub wrażliwe pod względem bezpieczeństwa pliki JAR przechowuj na lokalnym komputerze zamiast przesyłać je do internetowego dekompilatora. Dekompiluj wyłącznie oprogramowanie, którego jesteś właścicielem lub do którego inspekcji masz uprawnienia; odzyskany kod nadal podlega pierwotnym warunkom licencji i praw autorskich.
Krótko mówiąc, nie da się bezpośrednio przekonwertować JAR na JAVA.
Dlatego nie istnieje tak zwany konwerter jar na java ani darmowe narzędzie online do konwersji .jar na .java.
Porównanie formatu JAR z JAVA
Jak formaty JAR i JAVA wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.
| Cecha | .JAR Java Archive | .JAVA Java source code file |
|---|---|---|
| Otwarty standard | Tak | Częściowo otwarty |
| Kompresja | Oba | Bez kompresji |
| Typowy rozmiar pliku | Średni | Mały |
| Otwiera się w przeglądarce internetowej | Nie | Nie |
| Dalsza edycja | Ograniczone | Łatwy |
| Obsługa metadanych | Podstawowy | Podstawowy |
| Czytelny tekstowo | Nie | Tak |
| Najlepszy do | Osadzanie w aplikacjach | Profesjonalna produkcja |
| Wprowadzono | 1996 | 1995 |
| Twórca | Oracle (originally Sun Microsystems) | Oracle (Java platform; originally Sun Microsystems) |
| Typ MIME | application/java-archive | text/x-java-source |