Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

ajc - Online w chmurze

Uruchom ajc u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie ajc, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


ajc — kompilator i weaver kod bajtowy dla języków AspectJ i Java

STRESZCZENIE


ajc [Opcje] [plik... | @plik... | - plik arg plik... ]

Opis


Połączenia ajc polecenie kompiluje i splata pliki źródłowe AspectJ i Java oraz pliki .class, produkując
Pliki .class zgodne z dowolną maszyną wirtualną Java (wersja 1.1 lub nowsza). Łączy w sobie kompilację i
tkanie kodu bajtowego i obsługa kompilacji przyrostowych; możesz także utkać kod bajtowy w czasie wykonywania
za pomocą "" >.

Argumenty po opcjach określają pliki źródłowe do skompilowania. Aby określić źródło
zajęcia, wykorzystanie -ścieżka (poniżej). Pliki mogą być wyświetlane bezpośrednio w wierszu poleceń lub w
plik. The - plik arg filet i @filet formy są równoważne i są interpretowane jako znaczenie
wszystkie argumenty wymienione w określonym pliku.

Uwaga: Musisz wyraźnie zdać ajc wszystkie niezbędne źródła. Pamiętaj, aby podać źródło
nie tylko dla aspektów lub punktów, ale także dla wszystkich dotkniętych typów. Określanie wszystkich
źródła są konieczne, ponieważ w przeciwieństwie do javac, ajc nie przeszukuje ścieżki źródłowej dla
zajęcia. (Aby zapoznać się z dyskusją na temat tego, jakie typy, których dotyczy problem, mogą być wymagane, zobacz Połączenia AspektJ
Programowanie Przewodnik, Realizacja dodatek ../progguide/implementacja.html) .

Aby określić źródła, możesz podać pliki źródłowe jako argumenty lub użyć opcji -źródła
or -ścieżka. Jeśli istnieje wiele źródeł dla dowolnego typu, wynik jest niezdefiniowany, ponieważ ajc
nie ma możliwości określenia, które źródło jest poprawne. (Dzieje się to najczęściej, gdy użytkownicy
uwzględnij katalog docelowy w ścieżce wejściowej i odbuduj.)

Opcje
-włamywacze Lista jar
przestarzałe: od 1.2 należy używać -inpath, które również pobiera katalogi.

-ścieżka ścieżka
Zaakceptuj jako źródłowy kod bajtowy wszystkie pliki .class w danych wyjściowych
klasy, prawdopodobnie jako utkane z wszelkimi odpowiednimi aspektami. Ścieżka jest pojedyncza
argument zawierający listę ścieżek do plików lub katalogów zip, rozdzielonych przez
ogranicznik ścieżki specyficzny dla platformy.

-ścieżka aspektu ścieżka
Przeplataj aspekty binarne z plików jar i katalogów na ścieżce do wszystkich źródeł.
Aspekty powinny być wyprowadzane przez tę samą wersję kompilatora. Kiedy
uruchamiając klasy wyjściowe, ścieżka klasy powinna zawierać wszystkie ścieżki aspektu
wpisy. Path, podobnie jak classpath, jest pojedynczym argumentem zawierającym listę ścieżek
do plików jar, oddzielonych ogranicznikiem ścieżki klas specyficznym dla platformy.

- plik arg filet
Plik zawiera rozdzieloną wierszami listę argumentów. Każda linia w pliku
powinien zawierać jedną opcję, nazwę pliku lub ciąg argumentów (np. ścieżkę klasy lub
w ścieżce). Argumenty odczytane z pliku są wstawiane do listy argumentów dla
Komenda. Względne ścieżki w pliku są obliczane z katalogu
zawierający plik (nie bieżący katalog roboczy). Komentarze, jak w Javie,
zacząć od // i przedłużyć do końca linii. Opcje określone w argumencie
pliki mogą zastępować zamiast rozszerzać istniejące wartości opcji, więc unikaj
określanie opcji, takich jak -ścieżka klasy w plikach argumentów w przeciwieństwie do
plik argumentów jest jedyną specyfikacją kompilacji. Forma @plik jest taki sam jak
określanie - plik arg filet.

-outjar wyjście.jar
Umieść klasy wyjściowe w pliku zip output.jar.

-outxml Generuje plik aop.xml do tkania w czasie ładowania z domyślną nazwą.

-outxmlplik niestandardowy/aop.xml
Wygeneruj plik aop.xml do tkania w czasie ładowania z niestandardową nazwą.

-przyrostowe
Uruchamiaj kompilator w sposób ciągły. Po początkowej kompilacji kompilator:
poczekaj z rekompilacją, aż odczyta znak nowej linii ze standardowego wejścia i
zakończ, gdy przeczyta 'q'. Rekompiluje tylko niezbędne komponenty, więc a
ponowna kompilacja powinna być znacznie szybsza niż druga kompilacja. To wymaga
-źródła.

-źródła DirPath
Znajdź i zbuduj wszystkie pliki źródłowe .java lub .aj w dowolnym katalogu wymienionym w
Ścieżki kierunkowe. DirPaths, podobnie jak classpath, jest pojedynczym argumentem zawierającym listę
ścieżki do katalogów, oddzielone ogranicznikiem ścieżki klas specyficznym dla platformy.
Wymagane przez -incremental.

-odniesienia
Wygeneruj plik kompilacji .ajsym w katalogu wyjściowym. Używany do oglądania
przekrojowe odniesienia za pomocą narzędzi, takich jak przeglądarka AspectJ.

-emacssym Generuje pliki symboli .ajesym dla obsługi emacsa (przestarzałe).

-Xlint To samo, co -Xlint: ostrzeżenie (domyślnie włączone)

-Xlint: {poziom}
Ustaw domyślny poziom komunikatów o potencjalnych błędach programistycznych w
kod przekrojowy. {poziom} może oznaczać ignorowanie, ostrzeżenie lub błąd. To nadpisuje
wpisy w org/aspectj/weaver/XlintDefault.properties z aspektjtools.jar, ale
nie zastępuje poziomów ustawionych za pomocą opcji -Xlintfile.

-plik Xlint Plik właściwości
Określ plik właściwości, aby ustawić poziomy dla określonych komunikatów przekrojowych.
PropertyFile to ścieżka do pliku Java .properties, który przyjmuje tę samą właściwość
nazwy i wartości jako org/aspectj/weaver/XlintDefault.properties z
aspektjtools.jar, który również zastępuje.

-help Emituj informacje o opcjach i użyciu kompilatora

-version Emituje wersję kompilatora AspectJ

-ścieżka klasy ścieżka
Określ, gdzie znaleźć pliki klas użytkownika. Ścieżka to pojedynczy argument zawierający a
lista ścieżek do plików zip lub katalogów, rozdzielonych przez specyficzne dla platformy
ogranicznik ścieżki.

-ścieżka bootclass ścieżka
Zastąp lokalizację ścieżki bootclass VM w celu oceny typów, gdy
kompilacja. Ścieżka to pojedynczy argument zawierający listę ścieżek do plików zip lub
katalogi rozdzielone ogranicznikiem ścieżki specyficznym dla platformy.

-extkatalogi ścieżka
Zastąp lokalizację katalogów rozszerzeń maszyny wirtualnej na potrzeby oceny typów
podczas kompilacji. Ścieżka to pojedynczy argument zawierający listę ścieżek do
katalogi rozdzielone ogranicznikiem ścieżki specyficznym dla platformy.

-d Informator
Określ, gdzie umieścić wygenerowane pliki .class. Jeśli nie określono, Informator
domyślnie bieżącym reż.

-cel [1.1 do 1.5]
Określ ustawienie docelowe pliku klasy (od 1.1 do 1.5, domyślnie 1.2)

-1.3 Ustaw poziom zgodności na 1.3 Oznacza to -source 1.3 i -target 1.1.

-1.4 Ustaw poziom zgodności na 1.4 (domyślnie) Oznacza to -source 1.4 i -target 1.2.

-1.5 Ustaw poziom zgodności na 1.5. Oznacza to -source 1.5 i -target 1.5.

-source [1.3|1.4|1.5]
Przełącz asercje (1.3, 1.4 lub 1.5 - domyślnie 1.4). Używając -source 1.3,
instrukcja attach() poprawna w Javie 1.4 spowoduje błąd kompilatora.
Używając -source 1.4, leczyć zapewniać jako słowo kluczowe i zaimplementuj asercje
zgodnie ze specyfikacją językową 1.4. Podczas korzystania z -source 1.5, język Java 5
funkcje są dozwolone.

-nowarn Nie wyświetlaj żadnych ostrzeżeń (odpowiednik '-warn:none') To nie pomija wiadomości
wygenerowane przez ogłosić ostrzeżenie or Xlint.

-ostrzegać: szt
Emituj ostrzeżenia dla wszelkich wystąpień listy rozdzielonych przecinkami wątpliwego kodu
(np. '-warn:unusedLocals,deprecation'):

KonstruktorName metoda z nazwą konstruktora
packageDefaultMethod próba zastąpienia domyślnej metody pakietu
użycie wycofania przestarzałego typu lub członka
maskedCatchBlocks ukryty blok do przechwycenia
unusedLocals zmienna lokalna nigdy nie czytana
unusedArguments argument metody nigdy nie czyta
Instrukcja importu unusedImports nie jest używana przez kod w pliku
none pomija wszystkie ostrzeżenia kompilatora

-ostrzegaj: brak nie blokuje wiadomości generowanych przez ogłosić ostrzeżenie or Xlint.

-dezaprobata
To samo co -ostrzeż:wycofanie

-noBłąd importu
Nie wyświetlaj błędów dla nierozwiązanych importów

-kontynuuj przy błędzie
Kontynuuj kompilację po błędzie, zrzucając pliki klas z metodami powodującymi problemy

-g:[linie,zmienne,źródło]
debugowania poziomu atrybutów, który może przybierać trzy formy:

-g wszystkie informacje debugowania ('-g:lines,vars,source')
-g:brak brak informacji debugowania
-g:{items} informacje debugowania dla dowolnych/wszystkich [linii, zmiennych, źródła], np.
-g:linie,źródło

- zachowaj wszystkich mieszkańców
Zachowaj wszystkie zmienne lokalne podczas generowania kodu (aby ułatwić debugowanie).

-informacje referencyjne
Oblicz informacje referencyjne.

-kodowanie format
Określ domyślny format kodowania źródła. Określ niestandardowe kodowanie w jednym pliku
podstawy, dodając do każdego wejściowego pliku/folderu nazwę „[kodowanie]”.

-verbose Emituj wiadomości o dostępnych/przetworzonych jednostkach kompilacji

-pokażInformacje o splocie
Wysyłaj wiadomości o tkaniu

-Dziennik filet Określ plik dziennika dla komunikatów kompilatora.

-progress Pokaż postęp (wymaga trybu -log).

-czas Wyświetlaj informacje o prędkości.

-noExit Nie wywołuj System.exit(n) na końcu kompilacji (n=0, jeśli nie ma błędu)

-powtarzać N Powtórz proces kompilacji N razy (zwykle w celu przeprowadzenia analizy wydajności).

-XterminatePo kompilacji
Powoduje zakończenie działania kompilatora przed tkaniem

-XaddSerialVersionUID
Powoduje, że kompilator oblicza i dodaje pole SerialVersionUID do dowolnego typu
implementacja Serializable, na którą ma wpływ aspekt. Pole jest
obliczone na podstawie klasy przed tkaniem.

-Xreweavable[:kompresuj]
(Eksperymentalne - przestarzałe jako domyślne) Uruchamia tkacz w trybie reweavable, który
powoduje, że tworzy tkane klasy, które można przetkać, z zastrzeżeniem
ograniczenie, że przy próbie ponownego splotu wszystkie rodzaje, które zalecały tkanie
typ musi być dostępny.

-XnoInline
(Eksperymentalne) nie umieszczaj w tekście porad

-Xplik przyrostowy filet
(Eksperymentalne) Działa to jak tryb przyrostowy, ale przy użyciu pliku zamiast
standardowe wejście do sterowania kompilatorem. Będzie się ponownie kompilował za każdym razem, gdy plik jest
zmieniony i zatrzyma się, gdy plik zostanie usunięty.

-Xserializowalne aspekty
(Eksperymentalne) Zwykle deklarowanie aspektów, które można serializować, jest błędem. Ten
opcja usuwa to ograniczenie.

-Xnie wielokrotnego użytku
(Eksperymentalne) Utwórz pliki klas, które nie mogą być później przetworzone przez AspectJ.

-Xajruntimelevel: 1.2, ajruntimelevel:1.5
(Eksperymentalne) Umożliwia generowanie kodu, którego celem jest poziom 1.2 lub 1.5
Środowisko wykonawcze AspectJ (domyślnie 1.5)

filet Nazwy
ajc akceptuje pliki źródłowe z .Jawa rozszerzenie lub aj rozbudowa. My
normalnie używać .Jawa dla wszystkich naszych plików w systemie AspectJ -- plików zawierających aspekty
a także pliki zawierające klasy. Jeśli jednak masz potrzebę mechanicznie
odróżnić pliki korzystające z dodatkowej funkcjonalności AspectJ od tych, które są czyste
Zalecamy korzystanie z języka Java aj rozszerzenie dla tych plików.

Odradzamy stosowanie innych środków mechanicznego rozróżniania, takich jak konwencje nazewnictwa
lub pod-pakiety na korzyść aj rozbudowa.

· Konwencje nazw plików są trudne do wyegzekwowania i prowadzą do niezręcznych nazw dla twoich aspektów.
Zamiast TracingAspect.java zalecamy używanie Tracing.aj (Lub tylko Śledzenie.java)
zamiast.

· Podpakiety usuwają aspekty z ich naturalnego miejsca w systemie i mogą tworzyć
sztuczna potrzeba uprzywilejowanych aspektów. Zamiast dodawać podpakiet, taki jak
aspekty zalecamy korzystanie z aj rozszerzenie i dołączenie tych plików do twojego
istniejące pakiety.

zgodność
AspectJ to kompatybilne rozszerzenie języka programowania Java. Kompilator AspectJ
przestrzega Połączenia Java Wybierz język specyfikacja, druga edycja (KSIĄŻKA)
http://java.sun.com/docs/books/jls/index.html i do Połączenia Java Wirtualny Maszyna
Specyfikacja, druga edycja (KSIĄŻKA) http://java.sun.com/docs/books/vmspec/index.html i
działa na dowolnej platformie zgodnej z Java 2. Generowany kod działa na dowolnej Javie 1.1 lub
później kompatybilna platforma. Więcej informacji na temat kompatybilności z Javą i z
poprzednie wersje AspectJ, zobacz "" >.

Przykłady
A prosty przykład

Skompiluj dwa pliki:

ajc HelloWorld.java Trace.java

An przykład za pomocą -argplik/@

Aby uniknąć określania nazw plików w wierszu poleceń, wymień pliki źródłowe rozdzielonymi liniami
tekstowy plik arg. Ścieżki plików źródłowych mogą być bezwzględne lub względne w stosunku do pliku arg i mogą:
dołącz inne pliki arg przez @-reference. Poniższy plik źródła.lst zawiera
pliki bezwzględne i względne oraz @-referencje:

Gui.java
/home/user/src/Library.java
dane/Repozytorium.java
dane/Dostęp.java
@../../common/common.lst
@/home/user/src/lib.lst
widok/treść/ArrayView.java

Skompiluj pliki, używając formy -argfile lub @:

ajc -argfilesources.lst
ajc @sources.lst

Pliki Arg są również obsługiwane przez jikes i javac, więc możesz używać plików w kompilacjach hybrydowych.
Jednak wsparcie jest różne:

· Tylko ajc akceptuje opcje wiersza poleceń

· Jikes i Javac nie akceptują wewnętrznych odniesień @argfile.

· Jikes i Javac akceptują tylko formę @file w linii poleceń.

An przykład za pomocą -ścieżka i -ścieżka aspektu

Tkanie kodu bajtowego przy użyciu -inpath: AspectJ 1.2 obsługuje tkanie plików .class w wejściowym pliku zip/jar
pliki i katalogi. Używanie input jars jest jak kompilowanie odpowiednich plików źródłowych,
a wszystkie pliki binarne są emitowane na wyjście. Chociaż kompilatory zgodne z Java mogą się różnić w
ich wyjście, ajc powinien przyjąć jako dane wejściowe wszystkie pliki klas utworzone przez javac, jikes, eclipse,
i oczywiście ajc. Aspekty zawarte w -inpath zostaną wplecione jak inne .class
pliki i będą miały wpływ na inne typy jak zwykle.

Biblioteki aspektu używające -aspectpath: AspectJ 1.1 obsługuje tkanie z bibliotek tylko do odczytu
zawierające aspekty. Podobnie jak słoiki wejściowe, wpływają na wszystkie dane wejściowe; w przeciwieństwie do słoików wejściowych,
same nie są naruszone ani emitowane jako dane wyjściowe. Źródła skompilowane za pomocą bibliotek aspektów
muszą być uruchamiane z tymi samymi bibliotekami aspektu w ścieżce klas.

Poniższy przykład kompiluje przykład śledzenia w środowisku wiersza polecenia; to tworzy
biblioteka aspektu tylko do odczytu, kompiluje niektóre klasy do użycia jako wejściowy kod bajtowy i kompiluje
klasy i inne źródła z biblioteką aspektów.

Przykład śledzenia znajduje się w dystrybucji AspectJ ({aspectj}/doc/examples/tracing). Ten
korzysta z następujących plików:

aspektj1.1/
kosz/
ajc
lib /
aspektjrt.jar
przykłady /
rysunek kalkowy/
Okrąg.java
Przykład Główny.java
lib /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Kwadrat.java
tracelib.lst
tracev3.lst
TwoDshape.java
wersja3/
Trace.java
TraceMyClasses.java

Poniżej separator ścieżki przyjmuje postać „;”, ale separatory plików to „/”. Wszystkie polecenia są
w jednej linii. W razie potrzeby dostosuj ścieżki i polecenia do swojego środowiska.

Ustaw ścieżkę, ścieżkę klasy i bieżący katalog:

przykłady cd
eksportuj ajrt=../lib/aspectjrt.jar
eksportuj CLASSPATH="$ajrt"
eksportuj PATH="../kosz:$ŚCIEŻKA"

Zbuduj bibliotekę śledzenia tylko do odczytu:

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

Zbuduj aplikację ze śledzeniem w jednym kroku:

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

Uruchom aplikację ze śledzeniem:

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

Zbuduj aplikację ze śledzeniem z plików binarnych w dwóch krokach:

· (a) Zbuduj klasy aplikacji (używając javac dla celów demonstracyjnych):

klasy mkdir
javac -d śledzenie klas/*.java
jar cfM app.jar -C klasy .

· (b) Zbuduj aplikację ze śledzeniem:

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

Uruchom aplikację ze śledzeniem (tak samo jak powyżej):

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

Uruchom aplikację bez śledzenia:

java -classpath "app.jar" śledzenie.ExampleMain

Połączenia AspektJ kompilator API
Kompilator AspectJ jest w całości zaimplementowany w Javie i może być wywoływany jako klasa Javy.
Jedynym interfejsem, który należy uznać za publiczny, są metody publiczne w
org.aspectj.tools.ajc.Main. Np, main(Ciąg[] argumenty) przyjmuje standard ajc komenda
argumenty linii. Oznacza to, że alternatywnym sposobem uruchomienia kompilatora jest:

Jawa org.aspectj.tools.ajc.Main [opcja...] [plik...]

Aby uzyskać dostęp do komunikatów kompilatora programowo, użyj metod setHolder(IMessageHolder
uchwyt) i / lub uruchom(Ciąg[] argumenty, IMessage Holder uchwyt). ajc zgłasza każdą wiadomość do
uchwyt za pomocą IMessageHolder.handleWiadomość(..). Jeśli chcesz tylko zbierać wiadomości,
posługiwać się Obsługa wiadomości jak twoje IMessage Holder. Na przykład skompiluj i uruchom
podążając za aspektjtools.jar na ścieżce klas:

importuj org.aspectj.bridge.*;
import org.aspectj.tools.ajc.Main;
importuj java.util.Arrays;

klasa publiczna WrapAjc {
public static void main (String [] args) {
Główny kompilator = new Main();
MessageHandler m = nowy MessageHandler();
kompilator.uruchom(argumenty, m);
IMsage[] ms = m.getMessages(null, true);
System.out.println("wiadomości: " + Tablice.asList(SM));
}
}

Stos Ślady i dotychczasowy Plik źródłowy atrybut
W przeciwieństwie do tradycyjnych kompilatorów Java, kompilator AspectJ może w niektórych przypadkach generować
pliki klas z wielu plików źródłowych. Niestety, oryginalny format pliku klasy Java
nie obsługuje wielu atrybutów SourceFile. Aby upewnić się, że wszystkie pliki źródłowe
informacje są dostępne, kompilator AspectJ może w niektórych przypadkach kodować wiele nazw plików
w atrybucie SourceFile. Gdy maszyna wirtualna Java generuje ślady stosu, używa tego
atrybut, aby określić plik źródłowy.

(Kompilator AspectJ 1.0 obsługuje również rozszerzenia plików .class JSR-45. Te
zezwól zgodnym debugerom (takim jak jdb w Javie 1.4.1) na identyfikację właściwego pliku i wiersza
nawet biorąc pod uwagę wiele plików źródłowych dla jednej klasy. Planowana jest obsługa JSR-45 dla ajc in
AspectJ 1.1, ale nie znajduje się w pierwszym wydaniu. Aby uzyskać w pełni debugowalne pliki .class, użyj
opcja -XnoInline.)

Prawdopodobnie jedyny raz, kiedy możesz zobaczyć ten format, jest wtedy, gdy przeglądasz ślady stosu, gdzie
może napotkać ślady formatu

Wyjątek java.lang.NullPointerException
w Main.new$constructor_call37(Main.java;SynchAspect.java[1k]:1030)

gdzie zamiast zwykłego

Plik:Numer linii

format, widzisz

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

W tym przypadku LineNumber jest zwykłym przesunięciem w liniach plus "linia startu" rzeczywistego
Plik źródłowy. Oznacza to, że używasz LineNumber zarówno do identyfikacji pliku źródłowego, jak i do znalezienia
sporna linia. Liczba w [nawiasach] po każdym pliku wskazuje wirtualny „start
line” dla tego pliku (pierwszy plik ma początek 0).

W naszym przykładzie ze śladu wyjątku zerowego wskaźnika wirtualna linia startowa to 1030.
Ponieważ plik SynchAspect.java „zaczyna się” w wierszu 1000 [1k], LineNumber wskazuje na wiersz
30 z SynchAspect.java.

Tak więc w obliczu takich śladów stosu sposobem na znalezienie rzeczywistej lokalizacji źródła jest:
przejrzyj listę numerów „linii startu”, aby znaleźć ten tuż pod pokazaną linią
numer. Jest to plik, w którym można znaleźć lokalizację źródłową. Następnie odejmij
że "linia startowa" od pokazanego numeru linii, aby znaleźć rzeczywisty numer linii w tym
plik.

W pliku klasy, który pochodzi tylko z jednego pliku źródłowego, kompilator AspectJ generuje
Atrybuty SourceFile zgodne z tradycyjnymi kompilatorami Java.

ajc(1)

Korzystaj z ajc online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad