Hoe u erachter kunt komen tot welk .jar-bestand een bepaalde Java-klasse behoort

jar-weergaveklassen

Een van de problemen waarmee we altijd worden geconfronteerd software ontwikkelaars Het is die van wanorde, en het is heel eenvoudig om bestanden over het systeem te laten verspreiden zodra we beginnen met het testen van verschillende versies van onze programma's (bijvoorbeeld wanneer we een deel van de functionaliteit erin wijzigen). En hetzelfde gebeurt met broncodebestanden, die verschillende klassen kunnen hosten en dan is het moeilijk voor ons om te bepalen tot welke ze kunnen behoren.

Bij Java, de meest voorkomende is om nodig te hebben zoek uit tot welk JAR-bestand een bepaalde Java-klasse behoort om de typische problemen van 'NoClassDefFoundError' iets dat gelukkig niet al te ingewikkeld is, zoals we hieronder zullen zien. Maar daarvoor zullen we dat uitleggen JAR's zijn in feite gecomprimeerde bestanden, zodanig dat om ze te kunnen onderzoeken, een alternatief is om ze te decomprimeren of op zoek te gaan naar een alternatief waarmee we erin kunnen 'kijken'.

Hiervoor kunnen we het volgende uitvoeren, ervan uitgaande dat we een bestand met de naam weerstand gaan bekijken (het is van een heel eenvoudige app die ik heb gemaakt om de waarde van een weerstand te berekenen), maar het wordt natuurlijk in elk geval vervangen door de naam van het bestand dat we willen beoordelen:

$ jar tvf-weerstand.jar

Het resultaat is het resultaat dat we visualiseren in de bovenste afbeelding die bij dit bericht hoort, en waar we dat hebben zichtbaar alle bestanden waaruit een bepaalde JAR bestaat, waaronder natuurlijk de beroemde .class die de klassen van een applicatie vormen, waarmee we eindelijk zullen weten welke bestanden de klassen bevatten waarnaar we op zoek zijn.

Nu, hoewel we in het geval van Linux altijd een manier voor ons hebben om dingen vanaf de terminal te doen, is het voor veel gebruikers praktischer om ze vanuit een grafische applicatie te doen, zelfs als dit impliceert dat er extra software op hun systeem moet worden geïnstalleerd. Voor hen hebben we een programma genaamd jar-explorer, waarmee we JAR-bestanden kunnen verkennen om al hun inhoud te bekijken, en het goede is dat we een geïntegreerde zoekfunctie hebben, die recursieve zoekopdrachten van Java-klassen biedt.

Het is natuurlijk een applicatie die is ontwikkeld in Java, dus om het in te installeren Ubuntu wij voeren uit:

$wget http://jar-explorer.googlecode.com/files/jarexplorer-0.7-BETA.jar
$ java -jar jarexplorer-0.7-BETA.jar

Nu, zodra de toepassing start, moeten we naar de optie gaan Bestand -> Zoek root-directory of Jar-bestand, en selecteer de map waarin we de JAR-bestanden hebben. We gaan een lijst met alle bestanden zien in de sectie 'Jar File List', en dan hoeven we alleen nog maar de naam in te voeren van de klas waarnaar we op zoek zijn, wat we doen in het tekstveld rechts van 'Voer klas in om te zoeken'bovenaan het scherm. Klik ten slotte op de knop 'Begin' om met zoeken te beginnen, wat niet langer dan seconden duurt.

Maar jar-verkenner Het heeft nog een ander kenmerk dat voor ons van groot nut kan zijn en dat is stelt ons in staat om de inhoud van elke klassendefinitie in Java te verkennen, iets dat we kunnen bereiken door gewoon op de klassenaam te klikken (uit de vorige zoekresultaten).

Dat is alles, zoals we kunnen zien, dit zijn twee verschillende maar totaal geldige benaderingen om te zoeken naar Java-klassen tussen onze JAR-bestanden, een taak waarin ontwikkelaars meer dan eens vallen en dat hoeft niet vervelend of ingewikkeld te zijn.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.