Questo è il comando japicompat che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
japicompat - Testa le API Java per la compatibilità con le versioni precedenti dei binari.
SINOSSI
jacompate [-svqhtjw4] [-O file di uscita] [-io ignora file]
DESCRIZIONE
jacompate fa parte di japitools, progettato per testare la compatibilità tra le API Java.
Sono stati originariamente progettati per testare implementazioni gratuite di Java stesso per
compatibilità con JDK di Sun, ma possono anche essere utilizzati per testare la compatibilità con le versioni precedenti
tra le versioni di qualsiasi API.
Gli strumenti sono japize e japicompat. Japize è un programma Java che emette un elenco di an
API in un formato leggibile dalla macchina. Japicompat quindi prende due di questi elenchi e confronta
per la compatibilità binaria, come definito da Sun nella specifica del linguaggio Java.
VERSIONI
-s disabilitare ulteriori controlli di compatibilità binaria (eseguire solo i controlli definiti da JLS).
-v abilitare i controlli per problemi di compatibilità minori.
Verifica SerialVersionUID: japicompat segnala un errore minore se una classe Serializable
ha un SerialVersionUID diverso tra le due versioni.
Controllo deprecazione: japicompat segnala un errore minore se una classe o un membro lo era
deprecato nell'API originale ma non è deprecato nell'API da controllare.
-q disabilita i rapporti sullo stato di avanzamento.
-h genera output in formato HTML. I file HTML prodotti dipendono dal japi.css
file per ottenere una presentazione attraente.
-t genera output in formato testo. Questa è l'impostazione predefinita.
-j genera output in formato leggibile dalla macchina non elaborato. Il formato prodotto si chiama
formato "japio", e per convenzione dovrebbe essere salvato con un'estensione di file ".japio".
Le utility japiotext e japiohtml autonome possono essere utilizzate per convertire questo formato
in html o testo (in realtà, japicompat chiama japiotext o japiohtml internamente se
vengono utilizzati i flag -h o -t). I file Japio possono essere usati anche con il flag -i per
supporta l'ignoranza degli errori causati da incompatibilità tra le versioni di JDK.
-w disabilitare gli avvisi per l'esecuzione su vecchi file japi difettosi. Di default japimpat
produrrà avvisi se eseguito su file japi originariamente generati da precedenti
versioni di japitools che avevano bug noti che japifix non può eliminare.
-4 utilizzare la modalità compatibile con 1.4. Funziona finché le API da confrontare non contengono
1.5 solo articoli.
-o
Invia l'output a invece di stdout. Il formato di questo file dipende da
i flag -h, -t e -j.
-i
Supponiamo che tu stia tentando di implementare l'API Java. Hai (praticamente)
copertura completa delle prime versioni di JDK (1.0 e 1.1), ma ne hanno ancora alcune
distanza per ottenere una copertura completa di 1.4 (questa è una descrizione accurata di tutto
implementazioni Java del Software Libero al momento della stesura). Usando japicompat per
confrontare la tua implementazione con JDK 1.4 fornisce risultati accurati, ma potresti anche
vuoi mostrare la tua copertura delle versioni precedenti.
Sfortunatamente Sun non ha seguito le proprie regole di compatibilità binaria tra JDK
release, per non parlare delle regole espanse che japicompat verifica. Quindi quando corri a
confronto tra JDK 1.1 e la tua implementazione, otterrai un errore spurio
segnala quando sei compatibile con 1.4 ma non 1.1.
Ovviamente quello che vuoi veramente è ignorare errori come questo, e japicompat
fornisce un modo per farlo. Innanzitutto, esegui un confronto tra 1.1 e 1.4 usando -j
interruttore. Quindi esegui il confronto tra 1.1 e la tua implementazione, passando il
Opzione "-i" con l'output dell'esecuzione precedente. Per esempio:
$ japicompat -jo ignora-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -ignoro-11-14.japio jdk11.japi.gz
myimpl.japi.gz
Puoi anche ottenere lo stesso effetto eseguendo:
$ japicompat -ho jdk11-mioimpl.html -i jdk14.japi.gz jdk11.japi.gz mioimpl.japi.gz
Questo è ovviamente più semplice e veloce da digitare, ma richiede il confronto tra
jdk11 e jdk14 da eseguire ogni volta. Rendere il file japio manualmente consente
per essere salvato e riutilizzato la volta successiva, il che consente a japicompat di funzionare in giro
due volte più veloce.
I file japi corrispondenti alle API da confrontare.
japicompat verifica specificamente che il secondo argomento sia retrocompatibile
con il primo. Pertanto, una perfetta implementazione di JDK 1.1 produrrebbe no
errori indipendentemente dall'ordine degli argomenti, ma una perfetta implementazione di
JDK1.1 più parti di JDK1.2 dovrebbero essere testate come segue:
$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz
Probabilmente è impossibile realizzare un'implementazione che superi entrambi questi test,
poiché il JDK1.2 di Sun produce numerosi errori quando viene testato con JDK1.1. Vedi il
discussione dell'opzione -i sopra per un modo per far fronte a questa situazione.
È possibile passare a file compressi (.japi.gz) o non compressi (.japi)
japicompat: l'estensione del file viene utilizzata per determinare se reindirizzare o meno l'input
tramite gzip o meno.
Usa japicompat online utilizzando i servizi onworks.net