EnglishFrenchSpanyol

Ad


Favicon OnWorks

ajc - Dalam talian di Awan

Jalankan ajc dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan ajc yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


ajc — pengkompil dan penenun bytecode untuk bahasa AspectJ dan Java

SINOPSIS


ajc [Pilihan] [fail ... | @fail ... | -argfile fail ... ]

Penerangan Produk


. ajc arahan menyusun dan menganyam AspectJ dan fail sumber Java dan .class, menghasilkan
Fail .class mematuhi mana-mana Java VM (1.1 atau lebih baru). Ia menggabungkan kompilasi dan
tenunan bytecode dan menyokong binaan tambahan; anda juga boleh menganyam bytecode pada masa jalan
menggunakan "" >.

Argumen selepas pilihan menentukan fail sumber untuk disusun. Untuk menentukan sumber
kelas, gunakan -laluan masuk (di bawah). Fail boleh disenaraikan terus pada baris arahan atau dalam a
fail. The -argfile fail and @fail bentuk adalah setara, dan ditafsirkan sebagai makna
semua hujah yang disenaraikan dalam fail yang ditentukan.

Catatan: Anda mesti lulus secara eksplisit ajc semua sumber yang diperlukan. Pastikan anda memasukkan sumbernya
bukan sahaja untuk aspek atau titik potong tetapi juga untuk mana-mana jenis yang terjejas. Menentukan semua
sumber adalah perlu kerana, tidak seperti javac, ajc tidak mencari sourcepath untuk
kelas. (Untuk perbincangan tentang jenis yang terjejas mungkin diperlukan, lihat . AspekJ
Pengaturcaraan Panduan, Pelaksanaan Umbai usus ../progguide/implementation.html) .

Untuk menentukan sumber, anda boleh menyenaraikan fail sumber sebagai hujah atau menggunakan pilihan -akar sumber
or -laluan masuk. Jika terdapat berbilang sumber untuk sebarang jenis, hasilnya tidak ditentukan sejak ajc
tidak mempunyai cara untuk menentukan sumber mana yang betul. (Ini paling kerap berlaku apabila pengguna
sertakan direktori destinasi pada laluan masuk dan bina semula.)

Pilihan
-injar JarList
ditamatkan: sejak 1.2, gunakan -inpath, yang juga mengambil direktori.

-laluan masuk Jalan
Terima sebagai kod bait sumber mana-mana fail .class dalam Output akan menyertakan ini
kelas, mungkin sebagai tenunan dengan mana-mana aspek yang berkenaan. Path adalah satu
argumen yang mengandungi senarai laluan ke zip fail atau direktori, dibatasi oleh
pembatas laluan khusus platform.

-aspectpath Jalan
Jalin aspek binari daripada fail jar dan direktori pada laluan ke dalam semua sumber.
Aspek tersebut sepatutnya dikeluarkan oleh versi pengkompil yang sama. Bila
menjalankan kelas output, run classpath harus mengandungi semua aspectpath
entri. Path, seperti classpath, ialah argumen tunggal yang mengandungi senarai laluan
ke fail balang, dibatasi oleh pembatas laluan kelas khusus platform.

-argfile File
Fail ini mengandungi senarai argumen yang dibatasi baris. Setiap baris dalam fail
harus mengandungi satu pilihan, nama fail atau rentetan hujah (cth, laluan kelas atau
laluan masuk). Argumen yang dibaca daripada fail dimasukkan ke dalam senarai argumen untuk
perintah itu. Laluan relatif dalam fail dikira daripada direktori
mengandungi fail (bukan direktori kerja semasa). Komen, seperti dalam Java,
bermula dengan // dan memanjang ke hujung baris. Pilihan yang dinyatakan dalam hujah
fail mungkin mengatasi dan bukannya melanjutkan nilai pilihan sedia ada, jadi elakkan
menentukan pilihan seperti -laluan kelas dalam fail argumen tidak seperti
fail argumen adalah satu-satunya spesifikasi binaan. Borang @fail adalah sama seperti
menentukan -argfile fail.

-outjar keluaran.jar
Letakkan kelas output dalam fail zip output.jar.

-outxml Hasilkan fail aop.xml untuk tenunan masa muat dengan nama lalai.

-outxmlfile tersuai/aop.xml
Hasilkan fail aop.xml untuk tenunan masa muat dengan nama tersuai.

-bertambah
Jalankan pengkompil secara berterusan. Selepas penyusunan awal, pengkompil akan
tunggu untuk menyusun semula sehingga ia membaca baris baharu daripada input standard, dan akan
berhenti apabila ia berbunyi 'q'. Ia hanya akan menyusun semula komponen yang diperlukan, jadi a
penyusunan semula seharusnya lebih cepat daripada melakukan penyusunan kedua. Ini memerlukan
-akar sumber.

-akar sumber DirPaths
Cari dan bina semua fail sumber .java atau .aj di bawah mana-mana direktori yang disenaraikan dalam
DirPaths. DirPaths, seperti classpath, ialah argumen tunggal yang mengandungi senarai
laluan ke direktori, dibatasi oleh pembatas laluan kelas khusus platform.
Diperlukan secara -incremental.

-crossrefs
Hasilkan fail binaan .ajsym ke dalam direktori output. Digunakan untuk melihat
rujukan silang oleh alat seperti Pelayar AspectJ.

-emacssym Hasilkan fail simbol .ajesym untuk sokongan emacs (tidak digunakan lagi).

-Xlint Sama seperti -Xlint:warning (didayakan secara lalai)

-Xlint:{level}
Tetapkan tahap lalai untuk mesej tentang kemungkinan kesilapan pengaturcaraan dalam
kod potong silang. {level} mungkin diabaikan, amaran atau ralat. Ini mengatasi
entri dalam org/aspectj/weaver/XlintDefault.properties daripada aspectjtools.jar, tetapi
tidak mengatasi tahap yang ditetapkan menggunakan pilihan -Xlintfile.

-Xlintfile PropertyFile
Tentukan fail sifat untuk menetapkan tahap bagi mesej potong silang tertentu.
PropertyFile ialah laluan ke fail Java .properties yang mengambil sifat yang sama
nama dan nilai sebagai org/aspectj/weaver/XlintDefault.properties daripada
aspectjtools.jar, yang ia turut mengatasinya.

-membantu Memancarkan maklumat tentang pilihan pengkompil dan penggunaan

-versi Memancarkan versi pengkompil AspectJ

-laluan kelas Jalan
Tentukan tempat untuk mencari fail kelas pengguna. Path ialah satu hujah yang mengandungi a
senarai laluan untuk zip fail atau direktori, dihadkan oleh platform khusus
pembatas laluan.

-bootclasspath Jalan
Gantikan lokasi laluan kelas but VM untuk tujuan menilai jenis apabila
menyusun. Laluan ialah hujah tunggal yang mengandungi senarai laluan ke fail zip atau
direktori, dihadkan oleh pembatas laluan khusus platform.

-extdirs Jalan
Gantikan lokasi direktori sambungan VM untuk tujuan menilai jenis
semasa menyusun. Path ialah argumen tunggal yang mengandungi senarai laluan ke
direktori, dihadkan oleh pembatas laluan khusus platform.

-d Direktori
Tentukan tempat untuk meletakkan fail .class yang dihasilkan. Jika tidak dinyatakan, Direktori
lalai kepada dir yang berfungsi semasa.

-sasaran [1.1 kepada 1.5]
Tentukan tetapan sasaran fail kelas (1.1 hingga 1.5, lalai ialah 1.2)

-1.3 Tetapkan tahap pematuhan kepada 1.3 Ini membayangkan -sumber 1.3 dan -sasaran 1.1.

-1.4 Tetapkan tahap pematuhan kepada 1.4 (lalai) Ini membayangkan -sumber 1.4 dan -sasaran 1.2.

-1.5 Tetapkan tahap pematuhan kepada 1.5. Ini membayangkan -sumber 1.5 dan -sasaran 1.5.

-sumber [1.3|1.4|1.5]
Togol pernyataan (1.3, 1.4 atau 1.5 - lalai ialah 1.4). Apabila menggunakan -sumber 1.3,
pernyataan assert() yang sah di bawah Java 1.4 akan mengakibatkan ralat pengkompil.
Apabila menggunakan -sumber 1.4, rawat menegaskan sebagai kata kunci dan melaksanakan penegasan
mengikut spek bahasa 1.4. Apabila menggunakan -sumber 1.5, bahasa Java 5
ciri adalah dibenarkan.

-nowarn Tidak mengeluarkan amaran (bersamaan dengan '-warn:none') Ini tidak menyekat mesej
dijana oleh mengisytiharkan amaran or Xlint.

-amaran: item
Keluarkan amaran untuk sebarang contoh senarai kod yang boleh dipersoalkan
(cth '-warn:unusedLocals, deprecation'):

kaedah constructorName dengan nama constructor
packageDefaultMethod cuba mengatasi kaedah lalai pakej
penggunaan penamatan jenis atau ahli yang ditamatkan
maskedCatchBlocks blok tangkapan tersembunyi
pembolehubah tempatan unusedLocals tidak pernah dibaca
hujah kaedah unusedArguments tidak pernah dibaca
pernyataan import unusedImports tidak digunakan oleh kod dalam fail
tiada yang menyekat semua amaran pengkompil

-amaran: tiada tidak menyekat mesej yang dihasilkan oleh mengisytiharkan amaran or Xlint.

-penolakan
Sama seperti -warn:deprecation

-noImportError
Tiada ralat untuk import yang belum diselesaikan

-proceedOnError
Teruskan menyusun selepas ralat, membuang fail kelas dengan kaedah masalah

-g:[lines,vars,source]
tahap atribut nyahpepijat, yang mungkin mengambil tiga bentuk:

-g semua maklumat nyahpepijat ('-g:lines,vars,source')
-g:tiada tiada maklumat nyahpepijat
-g:{items} maklumat nyahpepijat untuk mana-mana/semua [baris, vars, sumber], cth,
-g:lines,source

-preserveAllLocals
Kekalkan semua pembolehubah tempatan semasa penjanaan kod (untuk memudahkan penyahpepijatan).

-info rujukan
Kira maklumat rujukan.

-pengekodan format
Tentukan format pengekodan sumber lalai. Tentukan pengekodan tersuai pada setiap fail
asas dengan mengakhirkan setiap fail sumber input/nama folder dengan '[pengekodan]'.

-verbose Mengeluarkan mesej tentang unit kompilasi yang diakses/diproses

-showWeaveInfo
Pancarkan mesej tentang tenunan

-log fail Tentukan fail log untuk mesej pengkompil.

-progress Tunjukkan kemajuan (memerlukan mod -log).

-masa Paparkan maklumat kelajuan.

-noExit Jangan panggil System.exit(n) pada akhir penyusunan (n=0 jika tiada ralat)

-ulang N Ulang proses penyusunan N kali (biasanya untuk melakukan analisis prestasi).

-XterminateAfterCompilation
Menyebabkan penyusun ditamatkan sebelum menganyam

-XaddSerialVersionUID
Menyebabkan pengkompil mengira dan menambah medan SerialVersionUID kepada sebarang jenis
melaksanakan Serializable yang dipengaruhi oleh sesuatu aspek. Padang adalah
dikira berdasarkan kelas sebelum anyaman berlaku.

-Xreweavable[:compress]
(Eksperimen - ditamatkan sebagai lalai sekarang) Menjalankan penenun dalam mod boleh tenun semula yang
menyebabkan ia mencipta kelas tenunan yang boleh ditenun semula, tertakluk kepada
sekatan yang cuba menganyam semula semua jenis yang menasihati tenunan
jenis mesti boleh diakses.

-XnoInline
(Percubaan) jangan sebaris dengan nasihat

-XincrementalFile fail
(Percubaan) Ini berfungsi seperti mod tambahan, tetapi menggunakan fail dan bukannya
input standard untuk mengawal pengkompil. Ia akan menyusun semula setiap kali fail
berubah dan dan berhenti apabila fail dipadamkan.

-XserializableAspects
(Percubaan) Lazimnya adalah ralat untuk mengisytiharkan aspek Boleh Bersiri. ini
pilihan mengalih keluar sekatan itu.

-XnotReweavable
(Percubaan) Cipta fail kelas yang tidak boleh dijalin semula oleh AspectJ.

-Xajruntimelevel:1.2, ajruntimelevel:1.5
(Percubaan) Membenarkan kod dijana yang menyasarkan tahap 1.2 atau 1.5
Masa jalan AspectJ (lalai 1.5)

File nama
ajc menerima fail sumber dengan sama ada .Jawa lanjutan atau .aj sambungan. Kami
biasa guna .Jawa untuk semua fail kami dalam sistem AspectJ -- fail yang mengandungi aspek
serta fail yang mengandungi kelas. Walau bagaimanapun, jika anda mempunyai keperluan untuk mekanikal
membezakan fail yang menggunakan fungsi tambahan AspectJ daripada yang tulen
Java kami mengesyorkan menggunakan .aj sambungan untuk fail tersebut.

Kami ingin tidak menggalakkan cara lain untuk membezakan mekanikal seperti konvensyen penamaan
atau sub-pakej yang memihak kepada .aj sambungan.

· Konvensyen nama fail sukar dikuatkuasakan dan membawa kepada nama yang janggal untuk aspek anda.
Bukan TracingAspect.java kami mengesyorkan menggunakan Menjejak.aj (atau hanya Tracing.java)
sebaliknya.

· Sub-pakej mengalihkan aspek keluar dari tempat semula jadinya dalam sistem dan boleh mencipta satu
keperluan buatan untuk aspek keistimewaan. Daripada menambah sub-pakej seperti
aspek kami mengesyorkan menggunakan .aj sambungan dan memasukkan fail ini dalam anda
pakej sedia ada sebaliknya.

Keserasian
AspectJ ialah sambungan yang serasi kepada bahasa pengaturcaraan Java. Penyusun AspectJ
berpegang kepada . Java Bahasa Spesifikasi, kedua Edisi (TEMPAHAN)
http://java.sun.com/docs/books/jls/index.html dan kepada . Java Maya mesin
Spesifikasi, kedua Edisi (TEMPAHAN) http://java.sun.com/docs/books/vmspec/index.html and
berjalan pada mana-mana platform serasi Java 2. Kod yang dijana dijalankan pada mana-mana Java 1.1 atau
platform serasi kemudian. Untuk maklumat lanjut tentang keserasian dengan Java dan dengan
keluaran sebelumnya AspectJ, lihat "" >.

Contoh
A mudah contoh

Susun dua fail:

ajc HelloWorld.java Trace.java

An contoh menggunakan -argfile/@

Untuk mengelak daripada menentukan nama fail pada baris arahan, senaraikan fail sumber dalam barisan yang dibatasi
teks argfile. Laluan fail sumber mungkin mutlak atau relatif kepada argfile, dan mungkin
sertakan argfiles lain oleh @-reference. Fail berikut sumber.lst mengandungi
fail mutlak dan relatif dan @-rujukan:

Gui.java
/home/user/src/Library.java
data/Repository.java
data/Access.java
@../../common/common.lst
@/home/user/src/lib.lst
view/body/ArrayView.java

Susun fail menggunakan sama ada -argfile atau bentuk @:

ajc -argfile sources.lst
ajc @sources.lst

Argfiles juga disokong oleh jikes dan javac, jadi anda boleh menggunakan fail dalam binaan hibrid.
Walau bagaimanapun, sokongan berbeza-beza:

· Hanya ajc yang menerima pilihan baris arahan

· Jikes dan Javac tidak menerima rujukan @argfile dalaman.

· Jikes dan Javac hanya menerima borang @file pada baris arahan.

An contoh menggunakan -laluan masuk and -aspectpath

Anyaman bytecode menggunakan -inpath: AspectJ 1.2 menyokong anyaman fail .class dalam zip input/jar
fail dan direktori. Menggunakan balang input adalah seperti menyusun fail sumber yang sepadan,
dan semua binari dipancarkan ke output. Walaupun penyusun yang mematuhi Java mungkin berbeza dalam
output mereka, ajc harus mengambil sebagai input mana-mana fail kelas yang dihasilkan oleh javac, jikes, eclipse,
dan, sudah tentu, ajc. Aspek yang termasuk dalam -inpath akan dijalin menjadi seperti .class yang lain
fail, dan ia akan menjejaskan jenis lain seperti biasa.

Pustaka aspek menggunakan -aspectpath: AspectJ 1.1 menyokong tenunan daripada perpustakaan baca sahaja
yang mengandungi aspek. Seperti balang input, ia menjejaskan semua input; tidak seperti balang input, mereka
sendiri tidak terjejas atau dipancarkan sebagai output. Sumber disusun dengan perpustakaan aspek
mesti dijalankan dengan perpustakaan aspek yang sama pada laluan kelas mereka.

Contoh berikut membina contoh pengesanan dalam persekitaran baris arahan; ia mencipta
perpustakaan aspek baca sahaja, menyusun beberapa kelas untuk digunakan sebagai kod bait input dan menyusun
kelas dan sumber lain dengan perpustakaan aspek.

Contoh pengesanan adalah dalam pengedaran AspectJ ({aspectj}/doc/examples/tracing). ini
menggunakan fail berikut:

aspekj1.1/
tong sampah/
ajc
lib /
aspekjrt.jar
contoh/
mengesan/
Circle.java
ContohMain.java
lib /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Square.java
tracelib.lst
tracev3.lst
TwoDShape.java
versi3/
Trace.java
TraceMyClasses.java

Di bawah, pemisah laluan diambil sebagai ";", tetapi pemisah fail ialah "/". Semua arahan adalah
pada satu baris. Laraskan laluan dan arahan kepada persekitaran anda mengikut keperluan.

Sediakan laluan, classpath dan direktori semasa:

contoh cd
eksport ajrt=../lib/aspectjrt.jar
eksport CLASSPATH="$ajrt"
eksport PATH="../ bin:$PATH"

Bina perpustakaan pengesanan baca sahaja:

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

Bina aplikasi dengan pengesanan dalam satu langkah:

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

Jalankan aplikasi dengan penjejakan:

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

Bina aplikasi dengan pengesanan daripada binari dalam dua langkah:

· (a) Bina kelas aplikasi (menggunakan javac demi demonstrasi):

kelas mkdir
javac -d pengesanan kelas/*.java
jar cfM app.jar -C kelas .

· (b) Bina aplikasi dengan pengesanan:

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

Jalankan aplikasi dengan pengesanan (sama seperti di atas):

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

Jalankan aplikasi tanpa mengesan:

java -classpath "app.jar" tracing.ExampleMain

. AspekJ pengkompil API
Pengkompil AspectJ dilaksanakan sepenuhnya di Jawa dan boleh dipanggil sebagai kelas Java.
Satu-satunya antara muka yang harus dianggap awam ialah kaedah awam dalam
org.aspectj.tools.ajc.Main. Cth, utama(String[] args) mengambil standard ajc arahan
hujah baris. Ini bermakna bahawa cara alternatif untuk menjalankan pengkompil ialah

Java org.aspectj.tools.ajc.Main [pilihan ...] [fail ...]

Untuk mengakses mesej pengkompil secara pengaturcaraan, gunakan kaedah setHolder(IMessageHolder
pemegang) dan / atau lari(String[] args, IMessageHolder pemegang). ajc melaporkan setiap mesej kepada
pemegang menggunakan IMessageHolder.handleMessage(..). Jika anda hanya mahu mengumpul mesej,
penggunaan MessageHandler sebagai anda IMessageHolder. Sebagai contoh, susun dan jalankan
mengikuti dengan aspectjtools.jar di laluan kelas:

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

kelas awam WrapAjc {
utama kekosongan statik awam (String [] args) {
Pengkompil utama = new Utama();
MessageHandler m = new MessageHandler();
compiler.run(args, m);
IMessage[] ms = m.getMessages(null, true);
System.out.println("mesej: " + Arrays.asList(Cik));
}
}

Menumpukkan Jejak and yang Fail sumber atribut
Tidak seperti pengkompil java tradisional, pengkompil AspectJ mungkin dalam kes tertentu menjana
classfiles daripada berbilang fail sumber. Malangnya, format fail kelas Java yang asal
tidak menyokong berbilang atribut SourceFile. Untuk memastikan semua fail sumber
maklumat tersedia, pengkompil AspectJ mungkin dalam beberapa kes mengekodkan berbilang nama fail
dalam atribut SourceFile. Apabila Java VM menjana surih tindanan, ia menggunakan ini
atribut untuk menentukan fail sumber.

(Pengkompil AspectJ 1.0 juga menyokong sambungan fail .class JSR-45. Ini
membenarkan penyahpepijat patuh (seperti jdb dalam Java 1.4.1) untuk mengenal pasti fail dan baris yang betul
malah diberi banyak fail sumber untuk satu kelas. Sokongan JSR-45 dirancang untuk ajc in
AspectJ 1.1, tetapi tiada dalam keluaran awal. Untuk mendapatkan fail .class boleh nyahpepijat sepenuhnya, gunakan
pilihan -XnoInline.)

Mungkin satu-satunya masa anda boleh melihat format ini ialah apabila anda melihat surih tindanan, di mana anda
mungkin menemui jejak format

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

mana bukannya biasa

Fail:LineNumber

format, anda lihat

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

Dalam kes ini, LineNumber ialah offset biasa dalam baris ditambah "garis permulaan" yang sebenar
fail sumber. Ini bermakna anda menggunakan LineNumber untuk mengenal pasti fail sumber dan mencari
garis yang dipertikaikan. Nombor dalam [kurung] selepas setiap fail memberitahu anda "start
line" untuk fail itu (fail pertama mempunyai permulaan 0).

Dalam contoh kami dari surih pengecualian penuding nol, garisan permulaan maya ialah 1030.
Memandangkan fail SynchAspect.java "bermula" pada baris 1000 [1k], LineNumber menghala ke baris
30 daripada SynchAspect.java.

Jadi, apabila berhadapan dengan jejak tindanan sedemikian, cara untuk mencari lokasi sumber sebenar adalah dengan
lihat senarai nombor "baris permulaan" untuk mencari nombor tepat di bawah baris yang ditunjukkan
nombor. Itulah fail di mana lokasi sumber sebenarnya boleh ditemui. Kemudian, tolak
"baris permulaan" itu daripada nombor baris yang ditunjukkan untuk mencari nombor baris sebenar di dalamnya
fail.

Dalam fail kelas yang datang daripada hanya satu fail sumber, pengkompil AspectJ menjana
Atribut SourceFile konsisten dengan penyusun Java tradisional.

ajc(1)

Gunakan ajc dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad