Vraag De inhoud van een .jar-bestand bekijken


Wat zou de gemakkelijkste manier zijn om klassen, methoden, eigenschappen, enz. In een jar-bestand te bekijken? Ik ben op zoek naar iets dat gelijkwaardig is aan het zeer nuttige  Lutz Roeder .NET Reflector  - voor Java


155
2017-11-26 12:19


oorsprong


antwoorden:


Met behulp van de JDK, jar -tf zal de bestanden in de pot vermelden. javap geeft je meer details van een bepaald klassenbestand.


191
2017-11-26 15:09



Ik open ze meestal met 7-Zip ... Het laat tenminste toe om pakketten en klassen en middelen te zien.
Moet ik methoden of velden zien die ik zou gebruiken Jad maar het is natuurlijk beter om te vertrouwen op (goed) JavaDoc ...

Nu, ergens op SO werd een aantal Eclipse plug-ins genoemd, om te vinden in welk jar-bestand een klasse zich bevindt, misschien kunnen ze meer doen (dat wil zeggen, wat je hebt aangevraagd).

[EDIT] Verwijzing naar SO thread. Niet wat wordt gevraagd, maar op een of andere manier gerelateerd, dus nuttig: Java: Hoe weet ik welk jar-bestand een klassennaam moet gebruiken?


44
2017-11-26 12:24



Wat ik persoonlijk gebruik is JD-GUI. Het is een gratis 'decompiler', omdat je dan de broncode, klassen en objecten in de klassen kunt zien en de bestandsstructuur in een boommenu aan de linkerkant kunt zien. Het staat u echter niet toe om de klassen rechtstreeks aan te passen.

JD-GUI's website: http://jd.benow.ca/


33
2017-09-14 12:53



Methodenamen, velden, etc.

Door een pot aan een project toe te voegen in een IDE, kunt u meestal methoden en veldnamen zien, maar niet de gedetailleerde implementatie. NetBeans kan het doen, Waarschijnlijk waarschijnlijk Eclipse, IntelliJ waarschijnlijk, enz. U kunt de jar-structuur direct binnen de IDE doorbladeren.

Alleen de inhoud

Voor alles, zoals het bekijken van de inhoud, zou u kunnen gebruiken:

  • jar tvf jarfile.jar
  • winzip of een zip-tool

De broncode

Om toegang te krijgen tot de broncode, zou je een decompiler zoals JAD of een van zijn frontends of een andere decompiler gebruiken. Als de code versluierd is, dan ...


15
2018-06-13 17:49



Gebruik WinRar. Het opent de mappenstructuur voor u op een intacte manier. Maakt ook bewerkingen in het archief mogelijk, met behoud van paden.

Uiteindelijk is een JAR-bestand alleen een ZIP-archief.


8
2017-11-26 12:27



Uitbreiding van het antwoord van Tom Hawtin, kunt u de lijst doorsturen om de gewenste klasse of bestanden eruit te filteren:

jar tf my-fat-jar-file.jar | grep filename

Dit zou moeten werken op bash / zsh en similars of eshell van emacs.

Extra informatie: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html


8
2017-07-29 11:00



Als ik het goed begrijp, wil je niet alleen klassen zien, maar ook methoden, eigenschappen enzovoort. De enige tool die ik ken die het kan doen is Eclipse - als je een pot toevoegt om het klassenpad te projecteren, kun je met de gebruikelijke pakketverkenner door zijn klassen bladeren met methoden en eigenschappen.

Hoe dan ook, dit is een goed idee voor een goede zelfstandige Java-tool


6
2017-12-21 12:49



Als je graag ziet wat erin zit, hernoem dan eenvoudigweg de eerste optie hieronder ..

  1. F2 & Rename to jarfile.zip    // Gebruik een unzipper ...

  2. jar tvf jarfile.jar 

  3. jar tf jarfile.jar


6
2017-11-13 10:39



Jad is klunky en wordt niet langer onderhouden. Ik ben overgestapt naar "Java-decompiler", met een goede gebruikersinterface en ondersteuning voor nieuwe taalfuncties.

Elke decompiler die ik heb gebruikt, loopt echter code tegen die niet met succes wordt gedecompileerd. Daarvoor helpt het de gedemonteerde Java-bytecode te begrijpen die wordt geproduceerd door de standaard JDK-tool, javap.


4
2017-11-26 16:31



Nou, een jar-bestand is gewoon een zip-bestand, dus als je het uitgepakt hebt (met je favoriete unzipping-hulpprogramma), krijg je alle bestanden erin.

Als je in de klasbestanden wilt kijken om de methoden te zien, heb je daarvoor een tool nodig. Zoals PhiLho vermeldt, kan Eclipse dat doen (standaard), en ik denk dat de meeste Java-IDE's daartoe in staat zijn.


3
2017-11-26 12:28



In Eclipse 3.4 doen

  1. Sleep het betreffende jar-bestand naar een Java-project. Er verschijnt een kopie van het jar-bestand.
  2. Klik met de rechtermuisknop op het jar-bestand en kies "Build Path" -> "Add to Build Path".
  3. Het bestand Jar wordt verplaatst naar het knooppunt met verwijzingen naar bibliotheken, waar het kan worden geopend en genavigeerd in het deelvenster Projectverkenner.

Als ook het zien van de broncode een probleem is, open dan een nieuwe vraag.

Voor navigatie op Jar-bestandsniveau (als een zip-bestand) gebruik ik 7zip, wat erg goed werkt, en toestaat om vermeldingen te bekijken en te bewerken, wat goed is voor het oplossen van problemen.


3
2018-06-13 19:02