Et av problemene vi alltid møter programvareutviklere er forstyrrelse, og det er veldig enkelt å begynne å ha filer spredt rundt i systemet når vi begynner å teste forskjellige versjoner av programmene våre (for eksempel når vi endrer funksjonalitet i det). Og det samme skjer med kildekodefiler, som kan være vert for forskjellige klasser, og da er det vanskelig for oss å finne hvilken som hver kan tilhøre.
I tilfelle av Java, det vanligste er å trenge finn hvilken JAR-fil en bestemt Java-klasse tilhører for å løse de typiske problemene med 'NoClassDefFoundError' noe som heldigvis ikke er for komplisert, som vi vil se nedenfor. Men før det vil vi forklare det JAR er i utgangspunktet komprimerte filer, på en slik måte at for å være i stand til å undersøke dem, er et alternativ å dekomprimere dem eller se etter et alternativ som lar oss 'se' inni dem.
For dette kan vi utføre følgende, forutsatt at vi skal gjennomgå en fil som heter motstand (det er fra en veldig enkel app jeg har laget for å beregne verdien av en motstand), men selvfølgelig erstattes den i hvert tilfelle med navnet på filen vi ønsker gjennomgang:
$ jar tvf motstand.jar
Resultatet blir det vi visualiserer i det øvre bildet som følger med dette innlegget, og hvor vi har synlig alle filene som utgjør en viss JAR, blant hvilke selvfølgelig er den berømte .klassen som utgjør klassene i en applikasjon, som vi endelig vil vite hvilke filer som inneholder klassene vi leter etter.
Nå, selv om vi alltid har en måte å gjøre ting fra terminalen på Linux, er det mer praktisk å gjøre dem fra en grafisk applikasjon for mange brukere, selv om det innebærer å installere tilleggsprogramvare på systemet. For dem har vi et program som heter jar-explorer, som lar oss utforske JAR-filer for å se alt innholdet deres, og det gode er at vi har et integrert søkeverktøy som tilbyr rekursive søk i Java-klasser.
Det er en applikasjon utviklet, selvfølgelig, i Java, så å installere den i Ubuntu vi utfører:
$wget http://jar-explorer.googlecode.com/files/jarexplorer-0.7-BETA.jar
$ java -jar jarexplorer-0.7-BETA.jar
Nå når applikasjonen starter, må vi gå til alternativet Fil -> Finn rotkatalog eller Jar-fil, og velg katalogen der vi har JAR-filene. Vi ser en liste over alle filene, i seksjonen 'Jar File List', og så gjenstår det bare å skrive inn navnet på klassen vi leter etter, noe vi gjør i tekstfeltet til høyre for 'Gå inn i klassen for å søke'øverst på skjermen. Til slutt klikker du på knappen 'Start' for å starte søket, som ikke tar mer enn sekunder.
Pero jar-utforsker har enda en funksjon som kan være veldig nyttig for oss, og det er la oss utforske innholdet i hver klassedefinisjon i Java, noe vi kan oppnå ved å bare klikke på kursnavnet (fra forrige søkeresultater).
Det er alt, som vi kan se, dette er to forskjellige, men helt gyldige tilnærminger for å søke etter Java-klasser blant JAR-filene våre, en oppgave der utviklere faller mer enn en gang, og som ikke trenger å være kjedelig eller komplisert.