אנגליתצרפתיתספרדי

Ad


סמל OnWorks

ajc - מקוון בענן

הפעל את ajc בספק אירוח בחינם של OnWorks על אובונטו אונליין, פדורה אונליין, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה ajc שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


ajc - מהדר ו-bytecode wewer עבור שפות AspectJ ו-Java

תַקצִיר


AJC [אפשרויות] [קוֹבֶץ... | @קוֹבֶץ... | -argfile קוֹבֶץ... ]

תיאור


אל האני AJC הפקודה מרכיבה ושוזרת קבצי מקור ו-.class של AspectJ ו-Java, מייצרת
קבצי .class תואמים לכל Java VM (1.1 ואילך). הוא משלב קומפילציה ו
אריגת קוד בתים ותומך בבנייה מצטברת; אתה יכול גם לטוות קוד בתים בזמן ריצה
באמצעות "" >.

הארגומנטים שאחרי האפשרויות מציינים את קבצי המקור להידור. כדי לציין מקור
שיעורים, שימוש -inpath (לְהַלָן). ניתן לרשום קבצים ישירות בשורת הפקודה או ב-a
קובץ. ה -argfile פילה ו @פילה צורות שוות ערך, ומתפרשות כמשמעות
כל הארגומנטים הרשומים בקובץ שצוין.

הערה: עליך לעבור במפורש AJC כל המקורות הדרושים. הקפד לכלול את המקור
לא רק עבור ההיבטים או הנקודות, אלא גם עבור כל הסוגים המושפעים. מפרט הכל
המקורות נחוצים מכיוון שבניגוד ל-javac, ajc לא מחפש את נתיב המקור
שיעורים. (לדיון באילו סוגים מושפעים עשויים להידרש, ראה אל האני היבט
תכנות להנחות, יישום נספח ../progguide/implementation.html) .

כדי לציין מקורות, אתה יכול לרשום קובצי מקור כארגומנטים או להשתמש באפשרויות -שורשי מקור
or -inpath. אם יש מספר מקורות לסוג כלשהו, ​​התוצאה אינה מוגדרת מאז ajc
אין דרך לקבוע איזה מקור נכון. (זה קורה לרוב כאשר משתמשים
כלול את ספריית היעד ב-inpath ובנה מחדש.)

אפשרויות
-פזרות JarList
הוצא משימוש: מאז 1.2, השתמש ב-inpath, שגם לוקח ספריות.

-inpath נתיב
קבל כקוד בתים מקור כל קבצי .class בפלט יכלול את אלה
שיעורים, אולי ארוגים עם כל ההיבטים הרלוונטיים. נתיב הוא יחיד
ארגומנט המכיל רשימה של נתיבים לקובצי zip או ספריות, מופרדים על ידי
מפריד הנתיב הספציפי לפלטפורמה.

-היבט היבט נתיב
שזר היבטים בינאריים מקבצי jar וספריות בנתיב לכל המקורות.
ההיבטים היו צריכים להיות מופקים על ידי אותה גרסה של המהדר. מתי
הפעלת מחלקות הפלט, ה-Run classpath צריך להכיל את כל aspectpath
ערכים. נתיב, כמו classpath, הוא ארגומנט יחיד המכיל רשימה של נתיבים
לקובצי jar, המופרדים על ידי מפריד ה-classpath הספציפי לפלטפורמה.

-argfile שלח
הקובץ מכיל רשימה מופרדת בשורות של ארגומנטים. כל שורה בקובץ
צריך להכיל אפשרות אחת, שם קובץ או מחרוזת ארגומנט (למשל, נתיב class או
inpath). ארגומנטים הנקראים מהקובץ מוכנסים לרשימת הארגומנטים עבור
הפקודה. נתיבים יחסיים בקובץ מחושבים מהספרייה
המכיל את הקובץ (לא את ספריית העבודה הנוכחית). הערות, כמו ב-Java,
להתחיל עם // ולהאריך עד סוף הקו. אפשרויות שצוינו בארגומנט
קבצים עשויים לעקוף ולא להרחיב את ערכי האפשרויות הקיימים, אז הימנע
ציון אפשרויות כמו -נתיב כיתתי בקבצי ארגומנטים בניגוד ל-
קובץ הארגומנט הוא מפרט הבנייה היחיד. הצורה @קוֹבֶץ הוא זהה
מפרט -argfile פילה.

-חוצה output.jar
שים מחלקות פלט בקובץ ה-zip output.jar.

-outxml צור קובץ aop.xml עבור אריגה בזמן טעינה עם שם ברירת מחדל.

-outxmlfile custom/aop.xml
צור קובץ aop.xml עבור אריגה בזמן טעינה עם שם מותאם אישית.

-מצטבר
הפעל את המהדר ברציפות. לאחר הקומפילציה הראשונית, המהדר יעשה זאת
המתן להידור מחדש עד שהוא קורא שורה חדשה מהקלט הסטנדרטי, ויעשה זאת
צא כאשר הוא קורא 'q'. זה רק יקמפל מחדש את הרכיבים הדרושים, אז א
הידור מחדש צריך להיות הרבה יותר מהיר מאשר ביצוע קומפילציה שנייה. זה דורש
-שורשי מקור.

-שורשי מקור DirPaths
מצא ובנה את כל קובצי המקור ‎.java או ‎.aj תחת כל ספרייה הרשומה ב
DirPaths. DirPaths, כמו classpath, הוא ארגומנט יחיד המכיל רשימה של
נתיבים לספריות, המופרדים על ידי מפריד ה-classpath הספציפי לפלטפורמה.
נדרש על-ידי -incremental.

-הצלבות
צור קובץ build .ajsym לתוך ספריית הפלט. משמש לצפייה
הפניות צולבות על ידי כלים כמו דפדפן AspectJ.

-emacssym צור קבצי סמל .ajesym לתמיכה ב-emacs (הוצא משימוש).

-Xlint זהה ל-Xlint:warning (מופעל כברירת מחדל)

-Xlint:{level}
הגדר רמת ברירת מחדל עבור הודעות על טעויות תכנות אפשריות ב
קוד חוצה. {level} עשוי להיות התעלמות, אזהרה או שגיאה. זה עוקף
ערכים ב-org/aspectj/weaver/XlintDefault.properties מ-aspectjtools.jar, אבל
אינו עוקף רמות שהוגדרו באמצעות האפשרות -Xlintfile.

-Xlintfile PropertyFile
ציין קובץ מאפיינים כדי להגדיר רמות עבור הודעות צולבות ספציפיות.
PropertyFile הוא נתיב לקובץ Java .properties שלוקח את אותו מאפיין
שמות וערכים כ-org/aspectj/weaver/XlintDefault.properties מ
aspectjtools.jar, שגם אותו הוא עוקף.

-עזור לפלוט מידע על אפשרויות מהדר ושימוש

-גרסה שלח את הגרסה של מהדר AspectJ

-נתיב כיתתי נתיב
ציין היכן למצוא קבצי כיתות משתמש. נתיב הוא ארגומנט יחיד המכיל א
רשימה של נתיבים לקובצי zip או ספריות, מופרדים לפי הפלטפורמה הספציפית
תוחם נתיבים.

-bootclasspath נתיב
לעקוף את המיקום של ה-bootclasspath של VM למטרות הערכת סוגים כאשר
קומפילציה. נתיב הוא ארגומנט יחיד המכיל רשימה של נתיבים לקובצי zip או
ספריות, המופרדות על ידי מפריד הנתיב הספציפי לפלטפורמה.

-extdirs נתיב
לעקוף את המיקום של ספריות ההרחבות של VM למטרות הערכת סוגים
בעת הידור. נתיב הוא ארגומנט יחיד המכיל רשימה של נתיבים אל
ספריות, המופרדות על ידי מפריד הנתיב הספציפי לפלטפורמה.

-d מַדרִיך
ציין היכן למקם קבצי .class שנוצרו. אם לא צוין, מַדרִיך
ברירת המחדל ל-dir העובד הנוכחי.

-יַעַד [1.1 ל 1.5]
ציין הגדרת יעד של קובץ class (1.1 עד 1.5, ברירת המחדל היא 1.2)

-1.3 הגדר את רמת התאימות ל-1.3 זה מרמז על -מקור 1.3 ועל -יעד 1.1.

-1.4 הגדר את רמת התאימות ל-1.4 (ברירת מחדל) זה מרמז על -מקור 1.4 ועל -יעד 1.2.

-1.5 הגדר את רמת התאימות ל-1.5. זה מרמז על -מקור 1.5 ועל -יעד 1.5.

-מָקוֹר [1.3|1.4|1.5]
החלף הצהרות (1.3, 1.4 או 1.5 - ברירת המחדל היא 1.4). בעת שימוש ב-source 1.3,
משפט assert() חוקי תחת Java 1.4 תגרום לשגיאת מהדר.
בעת שימוש ב-source 1.4, טפל לִטעוֹן כמילת מפתח וליישם קביעות
לפי מפרט השפה 1.4. בעת שימוש ב-source 1.5, שפת Java 5
תכונות מותרות.

-nowarn לא שלח אזהרות (שווה ל-'-warn:none') זה לא מדחיק הודעות
נוצר באמצעות לְהַכרִיז אזהרה or Xlint.

-לְהַזהִיר: פריטים
שלח אזהרות עבור כל מקרים של רשימה מופרדת בפסיקים של קוד מפוקפק
(למשל '-warn:unusedLocals,deprecation'):

שיטת constructorName עם שם constructor
packageDefaultMethod ניסיון לעקוף את שיטת ברירת המחדל של החבילה
שימוש בהוצאה משימוש של סוג או חבר שהוצא משימוש
maskedCatchBlocks בלוק תפיסה מוסתר
המשתנה המקומי unusedLocals מעולם לא נקרא
ארגומנט שיטת unusedArguments מעולם לא נקרא
unusedImports הצהרת ייבוא ​​לא בשימוש על ידי קוד בקובץ
אף אחד לא מדחיק את כל אזהרות המהדר

אזהרה: אין אינו מדכא הודעות שנוצרו על ידי לְהַכרִיז אזהרה or Xlint.

-בִּזוּי
זהה ל-warn:deprecation

-noImportError
אל תפלוט שגיאות עבור יבוא לא פתור

-proceedOnError
המשך להדר לאחר שגיאה, השלכת קבצי מחלקה עם שיטות בעיה

-g:[lines,vars,source]
רמת תכונות ניפוי באגים, שיכולה ללבוש שלוש צורות:

-g כל מידע ניפוי באגים ('-g:lines,vars,source')
-g:none אין מידע על ניפוי באגים
-g:{items} מידע באגים עבור כל/כל [שורות, vars, מקור], למשל,
-g:lines,source

-שמר את כל המקומיים
שמור על כל המשתנים המקומיים במהלך יצירת הקוד (כדי להקל על איתור באגים).

-ReferenceInfo
חישוב מידע התייחסות.

-הַצפָּנָה פוּרמָט
ציין פורמט קידוד מקור ברירת מחדל. ציין קידוד מותאם אישית לכל קובץ
בסיס על ידי סיומת כל שם קובץ/תיקייה מקור קלט עם '[קידוד]'.

שלח הודעות מפורטות לגבי יחידות אוסף שנגישות/עובדו

-showWeaveInfo
פליט הודעות על אריגה

-עֵץ פילה ציין קובץ יומן עבור הודעות מהדר.

-התקדמות הצג התקדמות (דורש מצב -log).

-זמן הצגת מידע על מהירות.

-noExit אל תקרא ל-System.exit(n) בסוף ההידור (n=0 אם אין שגיאה)

-חזור N חזור על תהליך הידור N פעמים (בדרך כלל כדי לבצע ניתוח ביצועים).

-XterminateAfterCompilation
גורם למהדר להסתיים לפני האריגה

-XaddSerialVersionUID
גורם למהדר לחשב ולהוסיף את השדה SerialVersionUID לכל סוג שהוא
יישום Serializable שמושפע מהיבט מסוים. השדה הוא
מחושב על סמך המעמד לפני ביצוע האריגה.

-Xreweavable[:compress]
(ניסיוני - הוצא משימוש כברירת מחדל כעת) מפעיל את ה-weaver במצב reweavable אשר
גורם לו ליצור שיעורים ארוגים שניתן לשזור מחדש, בכפוף ל
הגבלה שבניסיון לשזור כל הסוגים שייעצו לארוג
הסוג חייב להיות נגיש.

-XnoInline
(ניסיוני) אל תשב סביב עצות

-XincrementalFile פילה
(ניסיוני) זה עובד כמו מצב אינקרמנטלי, אבל באמצעות קובץ במקום
קלט סטנדרטי לשליטה במהדר. זה יקמפל מחדש בכל פעם שהקובץ
השתנה ועצור כאשר הקובץ נמחק.

-XserializableAspects
(ניסיוני) בדרך כלל זו שגיאה להכריז על היבטים ניתנים להסדרה. זֶה
האפשרות מסירה את ההגבלה הזו.

-XnotReweavable
(ניסיוני) צור קבצי מחלקה שלא ניתן לשזור לאחר מכן על ידי AspectJ.

-Xajruntimelevel:1.2, ajruntimelevel:1.5
(ניסיוני) מאפשר ליצור קוד המכוון לרמה 1.2 או 1.5
זמן ריצה של AspectJ (ברירת מחדל 1.5)

שלח שמות
ajc מקבל קבצי מקור עם ה- .Java הרחבה או .aj סיומת. אָנוּ
להשתמש בדרך כלל .Java עבור כל הקבצים שלנו במערכת AspectJ -- קבצים המכילים היבטים
כמו גם קבצים המכילים מחלקות. עם זאת, אם יש לך צורך באופן מכני
להבחין בין קבצים המשתמשים בפונקציונליות הנוספת של AspectJ לבין אלה שהם טהורים
Java אנו ממליצים להשתמש ב- .aj סיומת עבור קבצים אלה.

ברצוננו להמנע מאמצעים אחרים להבחנה מכנית כמו מוסכמות שמות
או חבילות משנה לטובת ה .aj סיומת.

· קשה לאכוף מוסכמות של שמות קבצים ומובילות לשמות מביכים להיבטים שלך.
במקום TracingAspect.java אנו ממליצים להשתמש Tracing.aj (או רק Tracing.java)
במקום.

· חבילות משנה מוציאות היבטים ממקומם הטבעי במערכת ויכולות ליצור
צורך מלאכותי בהיבטים מיוחסים. במקום להוסיף חבילת משנה לייק
היבטים אנו ממליצים להשתמש ב- .aj סיומת ולכלול קבצים אלה בקובץ שלך
חבילות קיימות במקום.

תְאִימוּת
AspectJ היא הרחבה תואמת לשפת התכנות Java. מהדר AspectJ
דבק ב אל האני Java שפה מפרט, שְׁנִיָה מַהֲדוּרָה (סֵפֶר)
http://java.sun.com/docs/books/jls/index.html וגם ל אל האני Java וירטואלי מכונה
מִפרָט, שְׁנִיָה מַהֲדוּרָה (סֵפֶר) http://java.sun.com/docs/books/vmspec/index.html ו
פועל על כל פלטפורמה תואמת Java 2. הקוד שהוא מייצר פועל בכל Java 1.1 או
פלטפורמה תואמת מאוחר יותר. למידע נוסף על תאימות עם Java ועם
מהדורות קודמות של AspectJ, ראה "" >.

דוגמאות
A פשוט דוגמה

קומפלו שני קבצים:

ajc HelloWorld.java Trace.java

An דוגמה באמצעות -argfile/@

כדי למנוע ציון שמות קבצים בשורת הפקודה, רשום קובצי מקור בהפרדה בשורה
טקסט argfile. נתיבי קובץ המקור עשויים להיות מוחלטים או יחסיים ל-argfile, ועשויים
כולל argfiles אחרים על ידי @-reference. הקובץ הבא sources.lst מכיל
קבצים מוחלטים ויחסיים והפניות @:

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

הידור הקבצים באמצעות טופס -argfile או @:

ajc -argfile sources.lst
ajc @sources.lst

Argfiles נתמכים גם על ידי jikes ו-javac, כך שתוכל להשתמש בקבצים ב-builds היברידי.
עם זאת, התמיכה משתנה:

· רק ajc מקבל אפשרויות שורת פקודה

· Jikes ו-Javac אינם מקבלים הפניות פנימיות של @argfile.

· Jikes ו-Javac מקבלים רק את הטופס @file בשורת הפקודה.

An דוגמה באמצעות -inpath ו -היבט היבט

אריגת קוד בתים באמצעות -inpath: AspectJ 1.2 תומך באריגה של קבצי .class ב-zip/jar קלט
קבצים וספריות. שימוש בצנצנות קלט זה כמו קומפילציה של קבצי המקור המתאימים,
וכל הקבצים הבינאריים נפלטים לפלט. למרות שמהדרים תואמי Java עשויים להיות שונים ב
הפלט שלהם, ajc צריך לקחת כקלט כל קבצי מחלקה שהופקו על ידי javac, jikes, eclipse,
וכמובן, ajc. היבטים הכלולים ב-inpath ישזרו בדומה ל-.class אחרים
קבצים, והם ישפיעו על סוגים אחרים כרגיל.

ספריות היבט באמצעות -aspectpath: AspectJ 1.1 תומך באריגה מספריות לקריאה בלבד
מכיל היבטים. כמו צנצנות קלט, הן משפיעות על כל הקלט; בניגוד לצנצנות קלט, הם
עצמם אינם מושפעים או נפלטים כפלט. מקורות הידור עם ספריות היבט
חייבים להיות מופעלים עם אותן ספריות היבט ב-classpath שלהם.

הדוגמה הבאה בונה את דוגמת המעקב בסביבת שורת פקודה; זה יוצר
ספריית היבט לקריאה בלבד, קומפילציה של כמה מחלקות לשימוש כקוד בייט קלט, וקומפילציה
השיעורים ומקורות אחרים עם ספריית ההיבטים.

דוגמה למעקב היא בהתפלגות AspectJ ({aspectj}/doc/examples/tracing). זֶה
משתמש בקבצים הבאים:

aspectj1.1/
פַּח/
AJC
lib /
aspectjrt.jar
דוגמאות/
מַעֲקָב/
Circle.java
ExampleMain.java
lib /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Square.java
tracelib.lst
tracev3.lst
TwoDShape.java
גרסה 3/
Trace.java
TraceMyClasses.java

להלן, מפריד הנתיבים נלקח בתור ";", אך מפרידי הקבצים הם "/". כל הפקודות הן
על שורה אחת. התאם נתיבים ופקודות לסביבה שלך לפי הצורך.

הגדר את הנתיב, ה-classpath והספרייה הנוכחית:

דוגמאות CD
ייצא ajrt=../lib/aspectjrt.jar
ייצוא CLASSPATH="$ajrt"
ייצוא PATH="../ סל:$PATH"

בנה ספריית מעקב לקריאה בלבד:

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

בנה את האפליקציה עם מעקב בשלב אחד:

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

הפעל את האפליקציה עם מעקב:

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

בנה את האפליקציה עם מעקב מקבצים בינאריים בשני שלבים:

· (א) בנה את כיתות היישום (באמצעות javac לצורך הדגמה):

שיעורי mkdir
javac -d classes tracing/*.java
jar cfM app.jar -C כיתות .

· (ב) בנה את האפליקציה עם מעקב:

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

הפעל את היישום עם מעקב (זהה לעיל):

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

הפעל את היישום ללא מעקב:

java -classpath "app.jar" tracing.ExampleMain

אל האני היבט מַהְדֵר API
מהדר AspectJ מיושם במלואו ב-Java וניתן לקרוא לו כמחלקת Java.
הממשק היחיד שצריך להיחשב כציבורי הם השיטות הציבוריות ב
org.aspectj.tools.ajc.Main. לְמָשָׁל, main(מחרוזת[] args) לוקח את הסטנדרט AJC הפקודה
טיעוני קו. זה אומר שדרך חלופית להפעיל את המהדר היא

תאווה org.aspectj.tools.ajc.Main [אוֹפְּצִיָה...] [קוֹבֶץ...]

כדי לגשת להודעות מהדר באופן תוכנתי, השתמש בשיטות setHolder(IMessageHolder
מַחְזִיק) ו / או run(String[] ארגונים, IMessageHolder מַחְזִיק). AJC מדווח על כל הודעה ל-
מחזיק באמצעות IMessageHolder.handleMessage(..). אם אתה רק רוצה לאסוף את ההודעות,
להשתמש MessageHandler כמו שלך IMessageHolder. לדוגמה, הידור והפעל את
עוקב עם aspectjtools.jar בנתיב הכיתה:

import org.aspectj.bridge.*;
ייבוא ​​org.aspectj.tools.ajc.Main;
יבוא java.util.Arrays;

כיתה ציבורית WrapAjc {
חלל סטטי ציבורי ראשי (String []) {
מהדר ראשי = new Main();
MessageHandler m = new MessageHandler();
compiler.run(args, m);
IMessage[] ms = m.getMessages(null, true);
System.out.println("messages: " + Arrays.asList(גברת));
}
}

לערום עקבות ו מה היא קובץ מקור תכונה
שלא כמו מהדרים מסורתיים של Java, מהדר AspectJ עשוי במקרים מסוימים ליצור
classfiles ממספר קבצי מקור. למרבה הצער, פורמט הקובץ המקורי של מחלקת Java
אינו תומך במספר תכונות SourceFile. על מנת לוודא שכל קובץ המקור
מידע זמין, מהדר AspectJ עשוי במקרים מסוימים לקודד שמות קבצים מרובים
בתכונה SourceFile. כאשר ה-Java VM יוצר עקבות מחסנית, הוא משתמש בזה
תכונה כדי לציין את קובץ המקור.

(המהדר AspectJ 1.0 תומך גם בסיומת הקובץ .class של JSR-45. אלה
לאפשר לאיפי באגים תואמים (כגון jdb ב-Java 1.4.1) לזהות את הקובץ והשורה הנכונים
אפילו נתנו קבצי מקור רבים עבור מחלקה אחת. תמיכה ב-JSR-45 מתוכננת עבור ajc in
AspectJ 1.1, אך אינו במהדורה הראשונית. כדי לקבל קבצי ‎.class הניתנים לאיפוי מלא, השתמש
האפשרות -XnoInline.)

כנראה שהפעם היחידה שאתה עשוי לראות את הפורמט הזה היא כשאתה צופה בעקבות מחסנית, איפה אתה
עלולים להיתקל בעקבות של הפורמט

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

איפה במקום הרגיל

קובץ:LineNumber

פורמט, אתה מבין

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

במקרה זה, LineNumber הוא ההיסט הרגיל בשורות בתוספת "שורת ההתחלה" של הקו בפועל
קובץ מקור. זה אומר שאתה משתמש ב-LineNumber גם כדי לזהות את קובץ המקור וגם כדי למצוא
הקו הנדון. המספר בסוגריים לאחר כל קובץ אומר לך את ה"התחל
line" עבור הקובץ הזה (לקובץ הראשון יש התחלה של 0).

בדוגמה שלנו ממעקב חריג מצביע null, קו ההתחלה הווירטואלי הוא 1030.
מכיוון שהקובץ SynchAspect.java "מתחיל" בשורה 1000 [1k], ה-LineNumber מצביע על קו
30 של SynchAspect.java.

לכן, כאשר מתמודדים עם עקבות מחסנית כאלה, הדרך למצוא את מיקום המקור בפועל היא
עיין ברשימת מספרי "קו ההתחלה" כדי למצוא את המספרים שמתחת לקו המוצג
מספר. זהו הקובץ שבו למעשה ניתן למצוא את מיקום המקור. לאחר מכן, להפחית
את "קו ההתחלה" הזה ממספר השורה המוצג כדי למצוא את מספר השורה בפועל בתוך זה
קובץ.

בקובץ class שמגיע מקובץ מקור בודד בלבד, המהדר AspectJ יוצר
תכונות SourceFile עקביות עם מהדרים מסורתיים של Java.

AJC(1)

השתמש ב-ajc באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

פקודות לינוקס

Ad