IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

ajc - Online nel cloud

Esegui ajc nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando ajc 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


ajc — compilatore e tessitore di bytecode per i linguaggi AspectJ e Java

SINOSSI


AJC [Opzioni] [file ... | @file ... | -file arg file ... ]

Descrizione


I AJC il comando compila e intreccia i sorgenti AspectJ e Java e i file .class, producendo
File .class compatibili con qualsiasi Java VM (1.1 o successivo). Combina compilazione e
tessitura di bytecode e supporta build incrementali; puoi anche tessere il bytecode in fase di esecuzione
utilizzando "" >.

Gli argomenti dopo le opzioni specificano i file sorgente da compilare. Per specificare la fonte
classi, uso -percorso (qui di seguito). I file possono essere elencati direttamente sulla riga di comando o in a
file. Il -file arg filetto ed @filetto le forme sono equivalenti e sono interpretate come significato
tutti gli argomenti elencati nel file specificato.

Nota: Devi passare esplicitamente AJC tutte le fonti necessarie. Assicurati di includere la fonte
non solo per gli aspetti oi pointcuts ma anche per eventuali tipologie interessate. Specificando tutto
sorgenti è necessario perché, a differenza di javac, ajc non cerca il percorso sorgente
classi. (Per una discussione su quali tipi interessati potrebbero essere richiesti, vedere I AspettoJ
Programmazione Guida, Implementazione Appendice ../progguide/implementation.html) .

Per specificare le fonti, puoi elencare i file di origine come argomenti o utilizzare le opzioni -sourceroot
or -percorso. Se ci sono più fonti per qualsiasi tipo, il risultato non è definito poiché ajc
non ha modo di determinare quale fonte è corretta. (Questo accade più spesso quando gli utenti
includere la directory di destinazione nell'inpath e ricostruire.)

Opzioni
-invasare JarList
deprecato: dalla 1.2, usa -inpath, che accetta anche le directory.

-percorso sentiero
Accetta come bytecode sorgente qualsiasi file .class nel L'output includerà questi
classi, possibilmente come tessuto con tutti gli aspetti applicabili. Il percorso è un unico
argomento contenente un elenco di percorsi per file zip o directory, delimitato da
il delimitatore di percorso specifico della piattaforma.

-percorso sentiero
Intreccia gli aspetti binari dai file jar e dalle directory sul percorso in tutte le fonti.
Gli aspetti avrebbero dovuto essere prodotti dalla stessa versione del compilatore. quando
eseguendo le classi di output, il percorso di classe di esecuzione dovrebbe contenere tutti i percorsi di aspetto
inserimenti. Path, come classpath, è un singolo argomento contenente un elenco di percorsi
ai file jar, delimitati dal delimitatore del percorso di classe specifico della piattaforma.

-file arg Compila il
Il file contiene un elenco di argomenti delimitato da righe. Ogni riga nel file
dovrebbe contenere un'opzione, un nome file o una stringa di argomenti (ad es. un percorso di classe o
instradamento). Gli argomenti letti dal file vengono inseriti nell'elenco degli argomenti per
il comando. I percorsi relativi nel file sono calcolati dalla directory
contenente il file (non la directory di lavoro corrente). Commenti, come in Java,
iniziare con // e si estendono fino alla fine della riga. Opzioni specificate nell'argomento
i file possono sovrascrivere invece di estendere i valori delle opzioni esistenti, quindi evita
specificando opzioni come -percorso di classe nei file di argomenti a differenza di
Il file degli argomenti è l'unica specifica di build. Il modulo @file equivale a
specificando -file arg filetto.

-outjar uscita.jar
Metti le classi di output nel file zip output.jar.

-outxml Genera il file aop.xml per la tessitura in fase di caricamento con il nome predefinito.

-file outxml personalizzato/aop.xml
Genera il file aop.xml per la tessitura del tempo di caricamento con un nome personalizzato.

-incrementale
Esegui continuamente il compilatore. Dopo la compilazione iniziale, il compilatore
aspetta di ricompilare finché non legge una nuova riga dall'input standard e lo farà
esci quando legge una 'q'. Ricompilerà solo i componenti necessari, quindi a
la ricompilazione dovrebbe essere molto più veloce di una seconda compilazione. Questo richiede
-sourceroot.

-sourceroot DirPath
Trova e crea tutti i file sorgente .java o .aj in qualsiasi directory elencata in
DirPath. DirPaths, come classpath, è un singolo argomento contenente un elenco di
percorsi alle directory, delimitati dal delimitatore del percorso di classe specifico della piattaforma.
Richiesto da -incrementale.

-rif
Genera un file build .ajsym nella directory di output. Usato per la visualizzazione
riferimenti incrociati con strumenti come AspectJ Browser.

-emacssym Genera file di simboli .ajesym per il supporto di emacs (deprecato).

-Xlint Uguale a -Xlint: avviso (abilitato per impostazione predefinita)

-Xlint:{livello}
Imposta il livello predefinito per i messaggi sui potenziali errori di programmazione in
codice trasversale. {level} può essere ignora, avvertenza o errore. Questo sovrascrive
voci in org/aspectj/weaver/XlintDefault.properties da aspectjtools.jar, ma
non sovrascrive i livelli impostati utilizzando l'opzione -Xlintfile.

-Xlintfile PropertyFile
Specificare il file delle proprietà per impostare i livelli per messaggi di taglio incrociato specifici.
PropertyFile è un percorso a un file Java .properties che prende la stessa proprietà
nomi e valori come org/aspectj/weaver/XlintDefault.properties da
aspectjtools.jar, che sovrascrive anche.

-help Emette informazioni sulle opzioni e sull'utilizzo del compilatore

-version Emette la versione del compilatore AspectJ

-percorso di classe sentiero
Specificare dove trovare i file di classe utente. Path è un singolo argomento contenente a
elenco di percorsi per zip file o directory, delimitato dalla piattaforma specifica
delimitatore di percorso.

-bootclasspath sentiero
Sostituisci la posizione del bootclasspath della VM allo scopo di valutare i tipi quando
compilazione. Path è un singolo argomento contenente un elenco di percorsi per zippare i file o
directory, delimitate dal delimitatore di percorso specifico della piattaforma.

-dir. est sentiero
Sostituisci la posizione delle directory delle estensioni della VM ai fini della valutazione dei tipi
durante la compilazione. Path è un singolo argomento contenente un elenco di percorsi per
directory, delimitate dal delimitatore di percorso specifico della piattaforma.

-d elenco
Specificare dove posizionare i file .class generati. Se non specificato, elenco
il valore predefinito è la directory di lavoro corrente.

-bersaglio [1.1 a 1.5]
Specificare l'impostazione di destinazione del file di classe (da 1.1 a 1.5, il valore predefinito è 1.2)

-1.3 Imposta il livello di conformità a 1.3 Ciò implica -source 1.3 e -target 1.1.

-1.4 Imposta il livello di conformità a 1.4 (predefinito) Ciò implica -source 1.4 e -target 1.2.

-1.5 Imposta il livello di conformità a 1.5. Ciò implica -source 1.5 e -target 1.5.

-fonte [1.3|1.4|1.5]
Attiva/disattiva asserzioni (1.3, 1.4 o 1.5 - l'impostazione predefinita è 1.4). Quando si utilizza -source 1.3,
un'istruzione assert() valida in Java 1.4 risulterà in un errore del compilatore.
Quando si usa -source 1.4, trattare affermare come parola chiave e implementare asserzioni
secondo le specifiche del linguaggio 1.4. Quando si utilizza -source 1.5, linguaggio Java 5
caratteristiche sono consentite.

-nowarn Non emette avvisi (equivalente a '-warn:none') Questo non sopprime i messaggi
generato da dichiarare identificazione dei warning or XLINT.

-avvisare: elementi
Emetti avvisi per qualsiasi istanza dell'elenco delimitato da virgole di codice discutibile
(es. '-warn:unusedLocals,deprecation'):

metodo constructorName con il nome del costruttore
packageDefaultMethod tenta di sovrascrivere il metodo predefinito del pacchetto
utilizzo di deprecazione di tipo o membro deprecato
maskedCatchBlocks blocco cattura nascosto
variabile locale unusedLocals mai letta
argomento del metodo unusedArguments mai letto
unusedImports dichiarazione di importazione non utilizzata dal codice nel file
nessuno sopprime tutti gli avvisi del compilatore

-warn:nessuno non sopprime i messaggi generati da dichiarare identificazione dei warning or XLINT.

-deprecazione
Uguale a -warn:deprecation

-noImportErrore
Non emettere errori per le importazioni non risolte

-procediSuErrore
Continua a compilare dopo l'errore, scaricando i file di classe con metodi problematici

-g:[linee,var,fonte]
livello degli attributi di debug, che può assumere tre forme:

-g tutte le informazioni di debug ('-g:lines,vars,source')
-g:nessuna nessuna informazione di debug
-g:{items} informazioni di debug per qualsiasi/tutte le [linee, variabili, sorgente], ad es.
-g:righe,fonte

-preserveAllLocals
Conserva tutte le variabili locali durante la generazione del codice (per facilitare il debug).

-informazioni di riferimento
Calcola informazioni di riferimento.

-codifica formato
Specifica il formato di codifica della sorgente predefinito. Specifica la codifica personalizzata su un file
base aggiungendo il suffisso a ogni nome di file/cartella sorgente di input con '[codifica]'.

-verbose Emette messaggi sulle unità di compilazione a cui si accede/elaborate

-showWeaveInfo
Invia messaggi sulla tessitura

-tronco d'albero filetto Specificare un file di registro per i messaggi del compilatore.

-progress Mostra lo stato di avanzamento (richiede la modalità -log).

-time Visualizza le informazioni sulla velocità.

-noExit Non chiama System.exit(n) alla fine della compilazione (n=0 se nessun errore)

-ripetere N Ripetere il processo di compilazione N volte (in genere per eseguire l'analisi delle prestazioni).

-XterminateDopoCompilazione
Fa terminare il compilatore prima della tessitura

-XaddSerialVersionUID
Fa in modo che il compilatore calcoli e aggiunga il campo SerialVersionUID a qualsiasi tipo
implementare Serializable che è interessato da un aspetto. Il campo è
calcolato in base alla classe prima che la tessitura abbia avuto luogo.

-Xreweavabile[:comprimi]
(Sperimentale - deprecato come ora predefinito) Esegue weaver in modalità reweavable che
fa sì che crei classi tessute che possono essere tessute, soggette alla
restrizione che nel tentativo di tessere tutti i tipi che consigliavano il tessuto
tipo deve essere accessibile.

-XnoInline
(Sperimentale) non in linea con i consigli

-XFile Incrementale filetto
(Sperimentale) Funziona come la modalità incrementale, ma utilizzando un file anziché
input standard per controllare il compilatore. Si ricompilerà ogni volta che il file è
modificato e si interrompe quando il file viene eliminato.

-Aspetti serializzabili
(Sperimentale) Normalmente è un errore dichiarare gli aspetti Serializzabili. Questo
l'opzione rimuove tale restrizione.

-XnotReweavable
(Sperimentale) Crea file di classe che non possono essere successivamente rielaborati da AspectJ.

-Xajruntimelevel: 1.2, ajruntimelevel:1.5
(Sperimentale) Consente di generare codice destinato a un livello 1.2 o 1.5
AspectJ runtime (predefinito 1.5)

Compila il nomi
ajc accetta i file sorgente con entrambi i .Giava estensione o .aj estensione. Noi
normalmente uso .Giava per tutti i nostri file in un sistema AspectJ -- file che contengono aspetti
così come i file che contengono le classi. Tuttavia, se hai bisogno di meccanicamente
distinguere i file che utilizzano le funzionalità aggiuntive di AspectJ da quelli che sono puri
Java si consiglia di utilizzare il .aj estensione per quei file.

Vorremmo scoraggiare altri mezzi di distinzione meccanica come le convenzioni di denominazione
o sottopacchetti a favore del .aj estensione.

· Le convenzioni sui nomi dei file sono difficili da applicare e portano a nomi imbarazzanti per i tuoi aspetti.
Invece di TracingAspect.java si consiglia di utilizzare Traccia.aj (o solo Tracciamento.java)
anziché.

· I sottopacchetti spostano gli aspetti fuori dal loro posto naturale in un sistema e possono creare
bisogno artificiale di aspetti privilegiati. Invece di aggiungere un sottopacchetto come
aspetti si consiglia di utilizzare il .aj estensione e includendo questi file nel tuo
pacchetti esistenti invece.

Compatibilità
AspectJ è un'estensione compatibile al linguaggio di programmazione Java. Il compilatore AspectJ
aderisce al I Java Lingua Specifica, Secondo Edizione (LIBRO)
http://java.sun.com/docs/books/jls/index.html e alla I Java virtuale Confezionatrici Verticali VFFS
Specifica, Secondo Edizione (LIBRO) http://java.sun.com/docs/books/vmspec/index.html ed
funziona su qualsiasi piattaforma compatibile con Java 2. Il codice che genera viene eseguito su qualsiasi Java 1.1 o
piattaforma compatibile successiva. Per maggiori informazioni sulla compatibilità con Java e con
versioni precedenti di AspectJ, vedere "" >.

Esempi
A semplice esempio

Compila due file:

ajc HelloWorld.java Trace.java

An esempio utilizzando -filearg/@

Per evitare di specificare i nomi dei file sulla riga di comando, elenca i file di origine in una riga delimitata
file di testo. I percorsi dei file di origine possono essere assoluti o relativi al file arg e possono
includi altri argfile per @-reference. Il seguente file fonti.lst contiene
file assoluti e relativi e riferimenti @:

Gui.java
/home/utente/src/Library.java
dati/Repository.java
dati/Access.java
@../../comune/comune.lst
@/home/utente/src/lib.lst
view/body/ArrayView.java

Compila i file utilizzando il modulo -argfile o @:

ajc -argfilesources.lst
ajc @sources.lst

Gli argfile sono supportati anche da jikes e javac, quindi puoi utilizzare i file nelle build ibride.
Tuttavia, il supporto varia:

· Solo ajc accetta le opzioni della riga di comando

· Jikes e Javac non accettano riferimenti interni a @argfile.

· Jikes e Javac accettano solo il modulo @file sulla riga di comando.

An esempio utilizzando -percorso ed -percorso

Tessitura bytecode utilizzando -inpath: AspectJ 1.2 supporta la tessitura di file .class in input zip/jar
file e directory. Usare i jar di input è come compilare i file sorgente corrispondenti,
e tutti i binari vengono emessi in output. Sebbene i compilatori compatibili con Java possano differire in
il loro output, ajc dovrebbe prendere come input qualsiasi file di classe prodotto da javac, jikes, eclipse,
e, naturalmente, agg. Gli aspetti inclusi in -inpath saranno intrecciati come altri .class
file e influenzeranno gli altri tipi come al solito.

Librerie di aspetti che utilizzano -aspectpath: AspectJ 1.1 supporta la tessitura da librerie di sola lettura
aspetti contenenti. Come i jar di input, influenzano tutti gli input; a differenza dei vasi di input, loro
stessi non sono influenzati o emessi come output. Sorgenti compilati con librerie di aspetti
devono essere eseguiti con le stesse librerie di aspetti sul loro percorso di classe.

L'esempio seguente crea l'esempio di traccia in un ambiente della riga di comando; crea
una libreria di aspetti di sola lettura, compila alcune classi da utilizzare come bytecode di input e compila
le classi e altre fonti con la libreria di aspetti.

L'esempio di traccia è nella distribuzione AspectJ ({aspectj}/doc/examples/tracing). Questo
utilizza i seguenti file:

aspettoj1.1/
bidone /
AJC
lib /
aspettojrt.jar
esempi /
tracciamento/
Cerchio.java
EsempioMain.java
lib /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Square.java
tracelib.lst
tracev3.lst
DueDShape.java
versione3/
Traccia.java
TraceMyClasses.java

Di seguito, il separatore di percorso è preso come ";", ma i separatori di file sono "/". Tutti i comandi sono
su una riga. Regola percorsi e comandi per il tuo ambiente in base alle esigenze.

Imposta il percorso, il percorso di classe e la directory corrente:

esempi di cd
esporta ajrt=../lib/aspectjrt.jar
export CLASSPATH="$ajrt"
esporta PERCORSO="../bidone:$PERCORSO"

Crea una libreria di traccia di sola lettura:

ajc -argfile traccia/tracelib.lst -outjar tracelib.jar

Crea l'applicazione con la traccia in un solo passaggio:

ajc -aspectpath tracelib.jar -argfile tracing/notrace.lst -outjar tracedapp.jar

Esegui l'applicazione con la traccia:

java -classpath "$ajrt;tracedapp.jar;tracelib.jar" tracing.ExampleMain

Compila l'applicazione con la traccia da binari in due passaggi:

· (a) Creare le classi dell'applicazione (usando javac a scopo dimostrativo):

classi mkdir
javac -d classi tracing/*.java
jar cfM app.jar -C classi .

· (b) Creare l'applicazione con la traccia:

ajc -inpath app.jar -aspectpath tracelib.jar -outjar tracedapp.jar

Esegui l'applicazione con la traccia (come sopra):

java -classpath "$ajrt;tracedapp.jar;tracelib.jar" tracing.ExampleMain

Esegui l'applicazione senza tracciare:

java -classpath "app.jar" tracing.ExampleMain

I AspettoJ compilatore API
Il compilatore AspectJ è implementato completamente in Java e può essere chiamato come una classe Java.
L'unica interfaccia che dovrebbe essere considerata pubblica sono i metodi pubblici in
org.aspectj.tools.ajc.Main. Per esempio, principale(Stringa[] argomenti) prende lo standard AJC command
argomenti di linea. Ciò significa che un modo alternativo per eseguire il compilatore è

Giava org.aspectj.tools.ajc.Main [opzione...] [file ...]

Per accedere ai messaggi del compilatore a livello di codice, utilizzare i metodi setHolder(IMessageHolder
titolare) e / o esegui(Stringa[] argomenti, Titolare del messaggio titolare). AJC riporta ogni messaggio al
titolare utilizzando IMessageHolder.handleMessage(..). Se vuoi solo raccogliere i messaggi,
uso Gestore dei messaggi come il tuo Titolare del messaggio. Ad esempio, compila ed esegui il file
seguendo con aspettojtools.jar sul percorso di classe:

importa org.aspectj.bridge.*;
importare org.aspectj.tools.ajc.Main;
import java.util.Array;

classe pubblica WrapAjc {
Main (string [] args) {public static void
Compilatore principale = new Main();
MessageHandler m = nuovo MessageHandler();
compiler.run(argomenti, m);
IMessage[] ms = m.getMessages(null, true);
System.out.println("messaggi: " + Array.asList(SM));
}
}

pila tracce ed , il File sorgente attributo
A differenza dei compilatori Java tradizionali, il compilatore AspectJ può in alcuni casi generare
file di classe da più file di origine. Sfortunatamente, il formato di file di classe Java originale
non supporta più attributi SourceFile. Per assicurarsi che tutti i file sorgente
informazioni sono disponibili, il compilatore AspectJ può in alcuni casi codificare più nomi di file
nell'attributo SourceFile. Quando la Java VM genera tracce dello stack, usa questo
attributo per specificare il file di origine.

(Il compilatore AspectJ 1.0 supporta anche le estensioni di file .class di JSR-45. Queste
consentire ai debugger conformi (come jdb in Java 1.4.1) di identificare il file e la riga corretti
anche dato molti file sorgente per una singola classe. Il supporto JSR-45 è pianificato per ajc in
AspectJ 1.1, ma non è nella versione iniziale. Per ottenere file .class completamente sottoponibili a debug, usa
l'opzione -XnoInline.)

Probabilmente l'unica volta che potresti vedere questo formato è quando visualizzi le tracce dello stack, dove
possono incontrare tracce del formato

java.lang.NullPointerException
in Main.new$constructor_call37(Main.java;SynchAspect.java[1k]:1030)

dove invece del solito

File:NumeroRiga

formato, vedi

File0;File1[Number1];File2[Number2] ... :LineNumber

In questo caso, LineNumber è il solito offset in linee più la "linea iniziale" dell'attuale
file sorgente. Ciò significa che usi LineNumber sia per identificare il file sorgente che per trovare
la linea in questione. Il numero tra [parentesi] dopo ogni file ti dice l'"inizio" virtuale
line" per quel file (il primo file inizia con 0).

Nel nostro esempio dalla traccia dell'eccezione del puntatore nullo, la linea di partenza virtuale è 1030.
Poiché il file SynchAspect.java "inizia" alla riga 1000 [1k], LineNumber punta alla riga
30 di SynchAspect.java.

Quindi, di fronte a tali tracce di stack, il modo per trovare la posizione di origine effettiva è di
guarda attraverso l'elenco dei numeri "linea di partenza" per trovare quello appena sotto la linea mostrata
numero. Questo è il file in cui è effettivamente possibile trovare la posizione di origine. Quindi, sottrai
quella "linea di partenza" dal numero di riga mostrato per trovare il numero di riga effettivo all'interno di quella
file.

In un file di classe che proviene da un solo file sorgente, il compilatore AspectJ genera
Attributi SourceFile coerenti con i compilatori Java tradizionali.

AJC(1)

Utilizzare ajc online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad