So finden Sie heraus, zu welcher JAR-Datei eine bestimmte Java-Klasse gehört

Glasanzeigeklassen

Eines der Probleme, mit denen wir immer konfrontiert sind Softwareentwickler Dies ist eine Störung, und es ist sehr einfach, Dateien über das System zu verteilen, sobald wir verschiedene Versionen unserer Programme testen (z. B. wenn wir einige Funktionen darin ändern). Und das gleiche passiert mit Quellcodedateien, die verschiedene Klassen beherbergen können, und dann ist es für uns schwierig zu finden, zu welcher jeder gehören kann.

Bei Javac, am häufigsten ist zu brauchen Finden Sie heraus, zu welcher JAR-Datei eine bestimmte Java-Klasse gehört um die typischen Probleme von zu lösen 'NoClassDefFoundError' etwas, das zum Glück nicht zu kompliziert ist, wie wir weiter unten sehen werden. Aber vorher werden wir das erklären JARs sind im Grunde komprimierte DateienUm sie zu untersuchen, besteht eine Alternative darin, sie zu dekomprimieren oder nach einer Alternative zu suchen, die es uns ermöglicht, in sie hineinzuschauen.

Dazu können wir Folgendes ausführen, vorausgesetzt, wir werden eine Datei namens Widerstand überprüfen (sie stammt aus einer sehr einfachen App, die ich erstellt habe, um den Wert eines Widerstands zu berechnen), aber natürlich wird sie in jedem Fall durch ersetzt Der Name der Datei, die überprüft werden soll:

$ jar tvf Widerstand.jar

Das Ergebnis ist das, das wir im oberen Bild visualisieren, das diesem Beitrag beiliegt, und wo wir es haben sichtbar alle Dateien, aus denen eine bestimmte JAR bestehtDazu gehören natürlich die berühmten .class, aus denen die Klassen einer Anwendung bestehen, mit denen wir endlich wissen, welche Dateien die gesuchten Klassen enthalten.

Obwohl wir unter Linux immer eine Möglichkeit haben, Dinge vom Terminal aus zu erledigen, ist es für viele Benutzer praktischer, sie von einer grafischen Anwendung aus zu erledigen, selbst wenn dies die Installation zusätzlicher Software auf ihrem System impliziert. Für sie haben wir ein Programm namens jar-explorer, mit dem wir JAR-Dateien durchsuchen können, um ihren gesamten Inhalt anzuzeigen, und das Gute ist, dass wir ein integriertes Suchwerkzeug haben, das rekursive Suchen von Java-Klassen ermöglicht.

Es ist eine Anwendung, die natürlich in entwickelt wurde Javac, um es in zu installieren Ubuntu wir führen aus:

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

Sobald die Anwendung gestartet ist, müssen wir uns für die Option entscheiden Datei -> Stammverzeichnis oder Jar-Datei suchenund wählen Sie das Verzeichnis aus, in dem sich die JAR-Dateien befinden. Wir werden eine Liste aller Dateien im Abschnitt sehen 'Jar File List'und dann müssen wir nur noch den Namen der gesuchten Klasse eingeben, was wir in das Textfeld rechts von tun 'Klasse zum Suchen eingeben'am oberen Bildschirmrand. Klicken Sie abschließend auf die Schaltfläche 'Anfang' um die Suche zu starten, die nicht länger als Sekunden dauert.

Birne Glasforscher hat noch eine weitere Funktion, die für uns sehr nützlich sein kann und das ist Ermöglichen Sie uns, den Inhalt jeder Klassendefinition in Java zu untersuchen. Dies können wir erreichen, indem Sie einfach auf den Klassennamen klicken (aus den vorherigen Suchergebnissen).

Das ist alles, wie wir sehen können, dies sind zwei verschiedene, aber absolut gültige Ansätze für die Suche nach Java-Klassen in unseren JAR-Dateien, eine Aufgabe, in die Entwickler mehr als einmal fallen und die nicht langwierig oder kompliziert sein muss.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.