Ich arbeite derzeit an einer J2ME-Polieranwendung und verbessere sie nur. Ich habe Schwierigkeiten, die genaue Version der JAR-Datei zu erhalten. Gibt es eine Möglichkeit, die Version der JAR-Datei für die in der Klasse durchgeführten Importe zu finden? Ich meine, wenn Sie etwas haben, importieren Sie xyz; Können wir wissen, zu welcher Version des jar xy-Pakets gehört?
jar
version
executable-jar
Ritesh Mengji
quelle
quelle
sqljdbc42.jar
Dateien, die ich mit Cognos verwendet habe, ist keine Version aufgezeichnet. Cognos kann jedoch eine Version (4.2.6420.100) melden. Woher kommt diese Version, wenn sie nicht im Manifest aufgezeichnet ist?Sie müssen es entpacken und seine
META-INF/MANIFEST.MF
Datei überprüfen , zoder genauer:
quelle
Um die obigen Antworten zu erweitern, wird in der Datei META-INF / MANIFEST.MF im JAR wahrscheinlich eine Zeile
Manifest-Version: 1.0
angezeigt : ← Dies ist NICHT die JAR-Versionsnummer!Sie müssen suchen
Implementation-Version
, ob es sich, falls vorhanden, um eine Freitextzeichenfolge handelt, die dem Autor der JAR so vollständig überlassen bleibt, was Sie dort finden. Siehe auch Oracle-Dokumente und Paketversionsspezifikationquelle
Nur um die obige Antwort zu vervollständigen.
Die Manifestdatei befindet sich im jar am
META-INF\MANIFEST.MF
Pfad.Sie können den Inhalt von jar in jedem Archivierer untersuchen, der zip unterstützt.
quelle
Jede Glasversion hat eine eindeutige Prüfsumme. Sie können die Prüfsumme für Ihr Glas berechnen (das keine Versionsinformationen hatte) und sie mit den verschiedenen Versionen des Glases vergleichen. Wir können ein Glas auch mit Prüfsumme durchsuchen.
Beziehen Sie sich auf diese Frage, um die Prüfsumme zu berechnen: Wie kann eine Prüfsumme für eine Datei auf meinem Computer am besten berechnet werden?
quelle
Grundsätzlich sollten Sie die
java.lang.Package
Klasse verwenden, die den Klassenladeprogramm verwendet, um Informationen über Ihre Klassen zu erhalten.Beispiel:
Ich denke, dass Logback diese Funktion verwendet, um den JAR-Namen / die JAR-Version jeder Klasse in ihren erstellten Stacktraces zu verfolgen.
Siehe auch http://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html#wp90779
quelle
Dieses einfache Programm listet nämlich alle Fälle für die Version von jar auf
Manifestdatei nicht gefunden
Es verwendet das Javaxt-Core-JAR, das von http://www.javaxt.com/downloads/ heruntergeladen werden kann.
quelle
Ich bin spät dran, aber Sie können die folgenden zwei Methoden ausprobieren
mit diesen benötigten Klassen
Mit diesen Methoden kann ich auf die jar-Attribute zugreifen. Ich mag es abwärtskompatibel zu sein und die neuesten zu verwenden. Also habe ich das benutzt
Dies funktioniert gut, wenn Sie Maven verwenden und POM-Details für bekannte Klassen benötigen. Hoffe das hilft.
quelle
Sie können die Version aus der MANIFEST-Datei mit filtern
unzip -p my.jar META-INF/MANIFEST.MF | grep 'Bundle-Version'
quelle
Bundle-Version
.Wenn Sie winrar haben, öffnen Sie das Glas mit winrar und doppelklicken Sie, um den Ordner zu öffnen
META-INF
. ExtrahierenMANIFEST.MF
undCHANGES
Dateien an einen beliebigen Ort (z. B. Desktop).Öffnen Sie die extrahierten Dateien in einem Texteditor: Sie sehen Implementierungsversion oder Release-Version.
quelle
Versuchen Sie unter Linux Folgendes:
finden . -name "YOUR_JAR_FILE.jar" -exec zipgrep "Implementierungsversion:" '{}' \; | awk -F ':' '{print $ 2}'
quelle
Ich dachte, ich würde eine neuere Antwort geben, da diese Frage bei Suchanfragen immer noch ziemlich hoch auftaucht.
Überprüfen der CLi JAR-Version:
Führen Sie in der CLi-JAR-Datei Folgendes aus:
Beispielausgabe:
Die CLi-Version ist oben aufgeführt.
Führen Sie Folgendes aus, um die Serverversion abzurufen:
(Die obigen Angaben variieren je nach Implementierung der Authentifizierung. Bitte ändern Sie sie entsprechend.)
Beispielausgabe:
quelle
Es kann mit einem Befehl überprüft werden
java -jar jarname
quelle
main()
Methode der JAR