EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

japicompat – Online in der Cloud

Führen Sie japicompat im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl japicompat, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


japicompat – Testen Sie Java-APIs auf binäre Abwärtskompatibilität.

ZUSAMMENFASSUNG


japicompat [-svqhtjw4] [-oder Outfile] [-ich ignoriere Dateien]

BESCHREIBUNG


japicompat ist Teil von japitools und wurde entwickelt, um die Kompatibilität zwischen Java-APIs zu testen.

Sie wurden ursprünglich zum Testen kostenloser Implementierungen von Java selbst entwickelt
Kompatibilität mit Suns JDK, sie können aber auch zum Testen der Abwärtskompatibilität verwendet werden
zwischen Versionen einer beliebigen API.

Die Tools sind japize und japicompat. Japize ist ein Java-Programm, das eine Liste von an ausgibt
API in einem maschinenlesbaren Format. Japicompat nimmt dann zwei solcher Auflistungen und vergleicht sie
sie aus Gründen der Binärkompatibilität, wie von Sun in der Java Language Specification definiert.

OPTIONAL


-s Deaktivieren Sie zusätzliche Binärkompatibilitätsprüfungen (führen Sie nur vom JLS definierte Prüfungen durch).

-v Aktivieren Sie die Prüfung auf kleinere Kompatibilitätsprobleme.

SerialVersionUID-Prüfung: Japicompat meldet einen geringfügigen Fehler, wenn es sich um eine serialisierbare Klasse handelt
hat zwischen den beiden Versionen eine unterschiedliche SerialVersionUID.

Veraltungsprüfung: Japicompat meldet einen geringfügigen Fehler, wenn eine Klasse oder ein Mitglied vorhanden war
in der ursprünglichen API veraltet, in der überprüften API jedoch nicht veraltet.

-q deaktiviert Fortschrittsberichte.

-h generiert eine Ausgabe im HTML-Format. Die erzeugten HTML-Dateien hängen von japi.css ab
Datei, um eine attraktive Präsentation zu erhalten.

-t erzeugt eine Ausgabe im Textformat. Dies ist die Standardeinstellung.

-j generiert eine Ausgabe in maschinenlesbarer Rohform. Das erzeugte Format heißt
Das Format liegt im „japio“-Format und sollte vereinbarungsgemäß mit der Dateierweiterung „.japio“ gespeichert werden.
Zur Konvertierung dieses Formats können die eigenständigen Dienstprogramme japiotext und japiohtml verwendet werden
in HTML oder Text (eigentlich ruft Japicompat intern Japiotext oder Japiohtml auf, wenn
die Flags -h oder -t werden verwendet). Japio-Dateien können auch mit dem Flag -i verwendet werden
Unterstützt das Ignorieren von Fehlern, die durch Inkompatibilitäten zwischen JDK-Versionen verursacht werden.

-w Deaktivieren Sie Warnungen für die Ausführung alter fehlerhafter Japi-Dateien. Standardmäßig japicompat
erzeugt Warnungen, wenn es mit Japi-Dateien ausgeführt wird, die ursprünglich von älteren Versionen generiert wurden
Versionen von Japitools, die bekannte Fehler hatten, die Japifix nicht beseitigen kann.

-4 Verwenden Sie den 1.4-kompatiblen Modus. Dies funktioniert, solange die zu vergleichenden APIs keine enthalten
Nur 1.5 Artikel.

-o
Senden Sie die Ausgabe an statt stdout. Das Format dieser Datei hängt davon ab
die Flags -h, -t und -j.

-i
Angenommen, Sie versuchen, die Java-API zu implementieren. Sie haben (so ziemlich)
Ich habe die Abdeckung der frühen JDK-Versionen (1.0 und 1.1) abgeschlossen, habe aber noch einige davon
Entfernung, um eine vollständige Abdeckung von 1.4 zu erreichen (dies ist eine genaue Beschreibung von allem).
Freie Software-Java-Implementierungen zum Zeitpunkt des Schreibens). Japicompat verwenden, um
Ein Vergleich Ihrer Implementierung mit JDK 1.4 liefert genaue Ergebnisse, aber Sie könnten es auch tun
Ich möchte Ihre Berichterstattung über die früheren Versionen zeigen.

Leider hat Sun seine eigenen Binärkompatibilitätsregeln zwischen JDK nicht befolgt
Releases, ganz zu schweigen von den erweiterten Regeln, auf die japicompat testet. Wenn Sie also eine ausführen
Beim Vergleich zwischen JDK 1.1 und Ihrer Implementierung erhalten Sie eine falsche Fehlermeldung
meldet, wenn Sie mit 1.4, aber nicht mit 1.1 kompatibel sind.

Was Sie wirklich wollen, ist natürlich, Fehler wie diesen und japicompat zu ignorieren
bietet eine Möglichkeit, dies zu tun. Führen Sie zunächst einen Vergleich zwischen 1.1 und 1.4 mit -j durch
schalten. Führen Sie dann den Vergleich zwischen 1.1 und Ihrer Implementierung durch und übergeben Sie die
Option „-i“ mit der Ausgabe des vorherigen Laufs. Zum Beispiel:

$ japicompat -joignore-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -iignore-11-14.japio jdk11.japi.gz
myimpl.japi.gz

Sie können den gleichen Effekt auch erzielen, indem Sie Folgendes ausführen:

$ japicompat -ho jdk11-myimpl.html -i jdk14.japi.gz jdk11.japi.gz myimpl.japi.gz

Dies ist natürlich einfacher und schneller zu tippen, erfordert jedoch den Vergleich zwischen
jdk11 und jdk14 müssen jedes Mal ausgeführt werden. Das manuelle Erstellen der Japio-Datei ermöglicht
damit es gespeichert und beim nächsten Mal wieder verwendet werden kann, sodass japicompat weiterlaufen kann
doppelt so schnell.


Die Japi-Dateien, die den zu vergleichenden APIs entsprechen.

japicompat prüft speziell, ob das zweite Argument abwärtskompatibel ist
mit dem ersten. Daher würde eine perfekte Implementierung von JDK 1.1 zu Nein führen
Fehler unabhängig von der Reihenfolge der Argumente, aber eine perfekte Implementierung von
JDK1.1 plus Teile von JDK1.2 sollten wie folgt getestet werden:

$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz

Es ist wahrscheinlich unmöglich, eine Implementierung zu erstellen, die beide Tests besteht.
da Suns eigenes JDK1.2 beim Test mit JDK1.1 zahlreiche Fehler erzeugt. Siehe die
Diskussion der obigen Option -i, um eine Möglichkeit zu finden, mit dieser Situation umzugehen.

Es können entweder komprimierte (.japi.gz) oder unkomprimierte (.japi) Dateien übergeben werden
japicompat: Die Dateierweiterung wird verwendet, um zu bestimmen, ob Eingaben weitergeleitet werden sollen oder nicht
über gzip oder nicht.

Nutzen Sie japicompat online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad