انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

ajc - آنلاین در ابر

ajc را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور ajc است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


ajc - کامپایلر و بافنده بایت کد برای زبان های AspectJ و جاوا

خلاصه


آجیک [گزینه] [فایل... | @فایل... | -argfile فایل... ]

توضیحات:


La آجیک دستور کامپایل و بافت سورس AspectJ و جاوا و فایل های کلاس .، تولید می کند
فایل های .class سازگار با هر جاوا VM (1.1 یا بالاتر). این ترکیب و
بافت بایت کد و پشتیبانی از ساخت های افزایشی. شما همچنین می توانید بایت کد را در زمان اجرا ببافید
با استفاده از "" >.

آرگومان های بعد از گزینه ها، فایل(های) منبع را برای کامپایل مشخص می کنند. برای مشخص کردن منبع
کلاس ها، استفاده کنید -در مسیر (در زیر). فایل ها ممکن است مستقیماً در خط فرمان یا در الف فهرست شوند
فایل. این -argfile پرونده و @پرونده اشکال معادل هستند و به معنی تفسیر می شوند
تمام آرگومان های لیست شده در فایل مشخص شده

توجه داشته باشید: شما باید به صراحت عبور کنید آجیک تمام منابع لازم منبع را حتما ذکر کنید
نه تنها برای جنبه ها یا نقاط برش، بلکه برای هر نوع آسیب دیده. مشخص کردن همه
منابع ضروری است زیرا برخلاف javac، ajc مسیر منبع را جستجو نمی کند
کلاس ها. (برای بحث در مورد اینکه چه انواعی ممکن است مورد نیاز باشد، نگاه کنید به La AspectJ
برنامه نويسي راهنما، پیاده سازی ضمیمه ../progguide/implementation.html) .

برای تعیین منابع، می توانید فایل های منبع را به عنوان آرگومان فهرست کنید یا از گزینه ها استفاده کنید -منبع ریشه ها
or -در مسیر. اگر چندین منبع برای هر نوع وجود داشته باشد، نتیجه از ajc تعریف نشده است
هیچ راهی برای تعیین اینکه کدام منبع صحیح است ندارد. (این اغلب زمانی اتفاق می افتد که کاربران
فهرست مقصد را در مسیر ورودی و بازسازی قرار دهید.)

گزینه
-اینجار JarList
منسوخ شده: از 1.2، از -inpath استفاده کنید، که دایرکتوری ها را نیز می گیرد.

-در مسیر راه
هر فایل .class را در خروجی به عنوان بایت کد منبع بپذیرید
کلاس ها، احتمالاً با هر جنبه قابل اجرا بافته شده اند. مسیر تک است
آرگومان حاوی لیستی از مسیرهای فایل‌های فشرده یا دایرکتوری‌ها، که توسط
جداکننده مسیر مخصوص پلت فرم.

-Aspectpath راه
جنبه های باینری را از فایل ها و دایرکتوری های jar در مسیر به همه منابع ببافید.
جنبه ها باید توسط همان نسخه کامپایلر خروجی می شد. چه زمانی
با اجرای کلاس های خروجی، مسیر کلاس اجرا باید شامل تمام مسیرها باشد
ورودی های. Path مانند classpath یک آرگومان واحد است که حاوی لیستی از مسیرها است
به فایل‌های jar که توسط جداکننده مسیر کلاسی خاص پلتفرم مشخص شده است.

-argfile پرونده
این فایل حاوی لیستی از آرگومان های محدود شده با خط است. هر خط در فایل
باید شامل یک گزینه، نام فایل یا رشته آرگومان باشد (مثلاً یک مسیر کلاس یا
در مسیر). آرگومان های خوانده شده از فایل در لیست آرگومان برای وارد می شوند
دستور. مسیرهای نسبی در فایل از دایرکتوری محاسبه می شوند
حاوی فایل (نه دایرکتوری فعلی). نظرات، مانند جاوا،
شروع کن با // و تا انتهای خط امتداد دهید. گزینه های مشخص شده در آرگومان
ممکن است فایل‌ها به جای گسترش مقادیر گزینه موجود، لغو شوند، بنابراین اجتناب کنید
مشخص کردن گزینه هایی مانند -مسیر کلاسی در فایل های آرگومان بر خلاف
فایل آرگومان تنها مشخصات ساخت است. فرم @فایل مثل این هست که
مشخص کردن -argfile پرونده.

-outjar خروجی.جار
کلاس های خروجی را در فایل فشرده output.jar قرار دهید.

-outxml فایل aop.xml را برای بافت در زمان بارگذاری با نام پیش فرض ایجاد کنید.

-outxmlfile custom/aop.xml
فایل aop.xml را برای بافندگی در زمان بارگذاری با نام سفارشی ایجاد کنید.

-افزایشی
کامپایلر را به طور مداوم اجرا کنید. پس از کامپایل اولیه، کامپایلر انجام خواهد داد
منتظر بمانید تا دوباره کامپایل شود تا یک خط جدید از ورودی استاندارد بخواند و این کار را انجام خواهد داد
وقتی یک "q" می خواند، آن را ترک کنید. این فقط اجزای ضروری را دوباره کامپایل می کند، بنابراین الف
کامپایل مجدد باید بسیار سریعتر از انجام کامپایل دوم باشد. این نیاز دارد
-منبع ریشه ها

-منبع ریشه ها DirPaths
همه فایل‌های منبع .java یا .aj را در هر دایرکتوری فهرست شده پیدا کرده و بسازید
DirPaths. DirPaths، مانند classpath، یک آرگومان واحد است که حاوی لیستی از
مسیرهایی به دایرکتوری ها که توسط جداکننده مسیر کلاسی خاص پلتفرم مشخص شده است.
مورد نیاز توسط -افزایشی.

-صفحه های متقاطع
یک فایل build .ajsym در دایرکتوری خروجی ایجاد کنید. برای مشاهده استفاده می شود
ارجاعات مقطعی توسط ابزارهایی مانند مرورگر AspectJ.

-emacssym فایل های نماد .ajesym را برای پشتیبانی از emacs ایجاد کنید (منسوخ شده).

-Xlint مشابه -Xlint:warning (به طور پیش فرض فعال است)

-Xlint:{سطح}
سطح پیش‌فرض را برای پیام‌های مربوط به اشتباهات احتمالی برنامه‌نویسی تنظیم کنید
کد مقطعی {level} ممکن است نادیده گرفته، هشدار یا خطا باشد. این نادیده می گیرد
ورودی های org/aspectj/weaver/XlintDefault.properties از aspectjtools.jar، اما
سطوح تنظیم شده با استفاده از گزینه -Xlintfile را لغو نمی کند.

فایل Xlint PropertyFile
فایل خواص را برای تنظیم سطوح برای پیام های مقطعی خاص مشخص کنید.
PropertyFile مسیری به یک فایل Java .properties است که دارای همان ویژگی است
نام ها و مقادیر به عنوان org/aspectj/weaver/XlintDefault.properties از
aspectjtools.jar، که آن را نیز لغو می کند.

کمک به انتشار اطلاعات در مورد گزینه های کامپایلر و استفاده

-version انتشار نسخه کامپایلر AspectJ

-مسیر کلاسی راه
محل پیدا کردن فایل های کلاس کاربر را مشخص کنید. مسیر یک آرگومان واحد است که حاوی a است
فهرستی از مسیرها به فایل‌های فشرده یا دایرکتوری‌ها، که توسط پلتفرم خاص مشخص شده‌اند
تعیین کننده مسیر

-bootclasspath راه
به منظور ارزیابی انواع زمانی که مسیر بوت کلاس ماشین مجازی را لغو کنید
تدوین Path یک آرگومان واحد است که حاوی لیستی از مسیرهای فایل های فشرده یا
دایرکتوری ها، توسط جداکننده مسیر خاص پلت فرم مشخص می شوند.

-extdirs راه
به منظور ارزیابی انواع، مکان دایرکتوری های برنامه افزودنی VM را نادیده بگیرید
هنگام تدوین Path یک آرگومان واحد است که حاوی لیستی از مسیرهای به است
دایرکتوری ها، توسط جداکننده مسیر خاص پلت فرم مشخص می شوند.

-d فهرست راهنما
محل قرار دادن فایل های .class ایجاد شده را مشخص کنید. اگر مشخص نشده باشد، فهرست راهنما
به طور پیش فرض به کارگردانی فعلی کار می کند.

-هدف [1.1 به 1.5]
تنظیم هدف کلاس فایل را مشخص کنید (1.1 تا 1.5، پیش‌فرض 1.2 است)

-1.3 سطح انطباق را روی 1.3 تنظیم کنید. این به معنی -source 1.3 و -target 1.1 است.

-1.4 سطح انطباق را روی 1.4 تنظیم کنید (پیش‌فرض) این به معنی -source 1.4 و -target 1.2 است.

-1.5 سطح انطباق را روی 1.5 تنظیم کنید. این به معنی منبع 1.5 و -target 1.5 است.

منبع [1.3|1.4|1.5]
اظهارنظرها را تغییر دهید (1.3، 1.4 یا 1.5 - پیش‌فرض 1.4 است). هنگام استفاده از -source 1.3،
یک عبارت assert() معتبر تحت جاوا 1.4 منجر به خطای کامپایلر می شود.
هنگام استفاده از -source 1.4، درمان کنید ادعا به عنوان یک کلمه کلیدی و اجرای ادعاها
با توجه به مشخصات زبان 1.4. هنگام استفاده از -source 1.5، زبان جاوا 5
ویژگی ها مجاز هستند

-nowarn هیچ هشداری صادر نمی کند (معادل '-warn:none') این پیام ها را سرکوب نمی کند
تولید شده توسط اعلام هشدار or Xlint.

-هشدار: اقلام
برای هر نمونه ای از لیست کد مشکوک با کاما، هشدار ارسال کنید
(به عنوان مثال '-warn:unusedLocals,deprecation'):

متد constructorName با نام سازنده
تلاش packageDefaultMethod برای لغو روش بسته-پیش‌فرض
استفاده از نوع یا عضو منسوخ شده
maskedCatchBlocks بلوک catch پنهان
unusedLocals متغیر محلی هرگز خوانده نمی شود
آرگومان روش unusedArguments هرگز خوانده نمی شود
unusedImports عبارت import توسط کد موجود در فایل استفاده نمی شود
هیچ کدام همه هشدارهای کامپایلر را سرکوب نمی کند

هشدار: هیچکدام پیام های تولید شده توسط را سرکوب نمی کند اعلام هشدار or Xlint.

-حذف
همان warn:deprecation

-NoImportError
برای واردات حل نشده هیچ خطایی صادر نکنید

-proceedOnError
پس از خطا به کامپایل کردن ادامه دهید، فایل های کلاس را با روش های مشکل حذف کنید

-g:[خطوط، vars، منبع]
سطح ویژگی های اشکال زدایی، که ممکن است به سه شکل باشد:

-g همه اطلاعات اشکال زدایی ('-g:lines, vars, source')
-g:هیچ اطلاعات اشکال زدایی وجود ندارد
-g:{items} اطلاعات اشکال‌زدایی برای هر/همه [خطوط، متغیرها، منبع]، به عنوان مثال،
-g: خطوط، منبع

-preserveAllLocals
تمام متغیرهای محلی را در طول تولید کد (برای تسهیل اشکال زدایی) حفظ کنید.

-referenceInfo
محاسبه اطلاعات مرجع

-رمزگذاری قالب
فرمت کدگذاری منبع پیش فرض را مشخص کنید. رمزگذاری سفارشی را در هر فایل مشخص کنید
با پسوند نام فایل/پوشه منبع ورودی با «[encoding]».

انتشار پیام های پرمخاطب در مورد واحدهای کامپایل قابل دسترسی/پردازش شده

-showWeaveInfo
پیام هایی در مورد بافندگی منتشر کنید

-لاگ پرونده یک فایل گزارش برای پیام های کامپایلر مشخص کنید.

-progress نمایش پیشرفت (به حالت -log نیاز دارد).

زمان نمایش اطلاعات سرعت.

-noExit در پایان کامپایل System.exit(n) را فراخوانی نکنید (اگر خطایی نداشته باشد n=0)

-تکرار N فرآیند کامپایل را N بار تکرار کنید (معمولاً برای انجام تجزیه و تحلیل عملکرد).

-XterminateAfterCompilation
باعث می شود کامپایلر قبل از بافندگی خاتمه یابد

-XaddSerialVersionUID
باعث می شود کامپایلر فیلد SerialVersionUID را به هر نوع محاسبه و اضافه کند
اجرای Serializable که تحت تأثیر یک جنبه است. میدان است
قبل از شروع بافت بر اساس کلاس محاسبه می شود.

-Xreweavaable[:compress]
(تجربی - منسوخ شده به عنوان پیش فرض در حال حاضر) بافنده را در حالت قابل بافت مجدد اجرا می کند
باعث می شود تا طبقات بافته شده ای را ایجاد کند که می توانند دوباره بافته شوند، مشروط به اینکه
محدودیتی که در تلاش برای بافتن تمام انواعی که بافته را توصیه می کند
نوع باید در دسترس باشد.

-XnoInline
(تجربی) حول نصایح خطی نکنید

-XincrementalFile پرونده
(تجربی) این مانند حالت افزایشی عمل می کند، اما به جای استفاده از یک فایل
ورودی استاندارد برای کنترل کامپایلر هر بار که فایل باشد دوباره کامپایل می شود
تغییر کرده و با حذف فایل متوقف می شود.

-XserializableAspects
(تجربی) معمولاً اعلام جنبه‌های Serializable خطا است. این
گزینه آن محدودیت را حذف می کند.

-XnotReweavaable
(تجربی) فایل‌های کلاسی را ایجاد کنید که بعداً توسط AspectJ قابل بازیابی نباشد.

-Xajruntimelevel:1.2، ajruntimelevel:1.5
(تجربی) اجازه می دهد تا کدی تولید شود که سطح 1.2 یا 1.5 را هدف قرار می دهد.
زمان اجرا AspectJ (پیش‌فرض 1.5)

پرونده نام
ajc فایل های منبع را با هر دو می پذیرد جاوا پسوند یا .aj افزونه. ما
به طور معمول استفاده کنید جاوا برای همه فایل های ما در یک سیستم AspectJ -- فایل هایی که حاوی جنبه ها هستند
و همچنین فایل هایی که حاوی کلاس هستند. با این حال، اگر شما نیاز به مکانیکی دارید
فایل هایی که از قابلیت های اضافی AspectJ استفاده می کنند را از فایل هایی که خالص هستند تشخیص دهید
جاوا استفاده از .aj پسوند برای آن فایل ها

مایلیم از سایر ابزارهای تمایز مکانیکی مانند قراردادهای نامگذاری جلوگیری کنیم
یا بسته های فرعی به نفع .aj افزونه.

· اجرای قراردادهای نام فایل سخت است و منجر به نام‌های ناخوشایند برای جنبه‌های شما می‌شود.
بجای TracingAspect.java توصیه می کنیم استفاده کنید Tracing.aj (یا فقط Tracing.java)
به جای آن.

· بسته های فرعی جنبه ها را از مکان طبیعی خود در یک سیستم خارج می کنند و می توانند یک ایجاد کنند
نیاز مصنوعی به جنبه های ممتاز به جای اضافه کردن یک بسته فرعی مانند
جنبه توصیه می کنیم از .aj پسوند و گنجاندن این فایل ها در خود
در عوض بسته های موجود

سازگاری
AspectJ یک پسوند سازگار با زبان برنامه نویسی جاوا است. کامپایلر AspectJ
پایبند است La جاوه زبان مشخصات، دوم چاپ (کتاب)
http://java.sun.com/docs/books/jls/index.html و به La جاوه مجازی دستگاه
مشخصات، دوم چاپ (کتاب) http://java.sun.com/docs/books/vmspec/index.html و
بر روی هر پلتفرم سازگار با جاوا 2 اجرا می شود. کدی که تولید می کند روی هر جاوا 1.1 یا اجرا می شود
پلتفرم سازگار بعدی برای اطلاعات بیشتر در مورد سازگاری با جاوا و با
نسخه های قبلی AspectJ را ببینید "" >.

مثال ها
A ساده مثال

کامپایل دو فایل:

ajc HelloWorld.java Trace.java

An مثال با استفاده از -argfile/@

برای جلوگیری از تعیین نام فایل ها در خط فرمان، فایل های منبع را در یک خط جدا شده فهرست کنید
فایل arg متنی مسیرهای فایل منبع ممکن است مطلق یا نسبت به فایل arg باشد و ممکن است
فایل های arg دیگر را توسط @-reference اضافه کنید. فایل زیر منابع.lst شامل
فایل های مطلق و نسبی و @-references:

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 نیز پشتیبانی می شود، بنابراین می توانید از فایل ها در ساخت های ترکیبی استفاده کنید.
با این حال، پشتیبانی متفاوت است:

· فقط ajc گزینه های خط فرمان را می پذیرد

· Jikes و Javac مراجع داخلی @argfile را قبول نمی کنند.

· Jikes و Javac فقط فرم فایل @ را در خط فرمان می پذیرند.

An مثال با استفاده از -در مسیر و -Aspectpath

بافت بایت کد با استفاده از -inpath: AspectJ 1.2 از بافتن فایل های .class در ورودی zip/jar پشتیبانی می کند.
فایل ها و دایرکتوری ها استفاده از شیشه های ورودی مانند کامپایل کردن فایل های منبع مربوطه است.
و همه باینری ها به خروجی گسیل می شوند. اگرچه کامپایلرهای سازگار با جاوا ممکن است در آنها متفاوت باشند
خروجی آنها، ajc باید هر فایل کلاسی را که توسط javac، jikes، eclipse تولید می شود، به عنوان ورودی دریافت کند.
و البته ajc. جنبه‌های موجود در -inpath مانند سایر کلاس‌ها بافته می‌شوند
فایل‌ها، و طبق معمول بر انواع دیگر تأثیر می‌گذارند.

کتابخانه های جنبه با استفاده از -aspectpath: AspectJ 1.1 از بافتن از کتابخانه های فقط خواندنی پشتیبانی می کند
حاوی جنبه ها آنها مانند شیشه های ورودی، همه ورودی ها را تحت تأثیر قرار می دهند. بر خلاف شیشه های ورودی، آنها
خود تحت تأثیر قرار نمی گیرند یا به عنوان خروجی منتشر نمی شوند. منابع گردآوری شده با کتابخانه های جنبه
باید با همان کتابخانه های جنبه در مسیر کلاس خود اجرا شوند.

مثال زیر نمونه ردیابی را در یک محیط خط فرمان می سازد. ایجاد می کند
یک کتابخانه جنبه فقط خواندنی، چند کلاس را برای استفاده به عنوان بایت کد ورودی کامپایل می کند و کامپایل می کند.
کلاس ها و سایر منابع با کتابخانه جنبه.

مثال ردیابی در توزیع AspectJ ({aspectj}/doc/examples/tracing) است. این
از فایل های زیر استفاده می کند:

aspectj1.1/
صندوقچه/
آجیک
معاونت /
aspectjrt.jar
مثال ها/
ردیابی/
Circle.java
ExampleMain.java
معاونت /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Square.java
tracelib.lst
tracev3.lst
TwoDShape.java
نسخه 3/
Trace.java
TraceMyClasses.java

در زیر، جداکننده مسیر به صورت ";" گرفته شده است، اما جداکننده فایل "/" است. همه دستورات هستند
در یک خط در صورت نیاز مسیرها و دستورات را با محیط خود تنظیم کنید.

مسیر، مسیر کلاس و دایرکتوری فعلی را تنظیم کنید:

نمونه های سی دی
صادرات 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 classes .

· (ب) برنامه را با ردیابی بسازید:

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

برنامه را با ردیابی اجرا کنید (همانند بالا):

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

برنامه را بدون ردیابی اجرا کنید:

جاوا -classpath "app.jar" tracing.ExampleMain

La AspectJ کامپایلر API
کامپایلر AspectJ به طور کامل در جاوا پیاده سازی شده است و می توان آن را به عنوان یک کلاس جاوا فراخوانی کرد.
تنها رابطی که باید عمومی در نظر گرفته شود، متدهای عمومی هستند
org.aspectj.tools.ajc.Main. به عنوان مثال، اصلی(رشته[] ارگ) استاندارد را می گیرد آجیک فرمان
آرگومان های خطی این بدان معنی است که یک راه جایگزین برای اجرای کامپایلر است

جاوه org.aspectj.tools.ajc.Main [گزینه...] [فایل...]

برای دسترسی به پیام های کامپایلر به صورت برنامه ای، از روش ها استفاده کنید setHolder(IMessageHolder
دارنده) و / یا اجرا (رشته[] ارگ، IMessageHolder دارنده). آجیک هر پیام را به
نگهدارنده با استفاده از IMessageHolder.handleMessage(..). اگر فقط می خواهید پیام ها را جمع آوری کنید،
استفاده کنید Message Handler به عنوان شما IMessageHolder. به عنوان مثال، کامپایل و اجرا کنید
دنبال کردن با aspectjtools.jar در مسیر کلاس:

وارد کردن org.aspectj.bridge.*;
واردات org.aspectj.tools.ajc.Main;
واردات java.util.Arrays ؛

کلاس عمومی WrapAjc {
public static void main (رشته [] args) {
کامپایلر اصلی = جدید Main();
MessageHandler m = new MessageHandler();
compiler.run(args, m);
IMessage[] ms = m.getMessages(null, true);
System.out.println("messages: " + Arrays.asList(اماس))؛
}
}

پشته ردیابی ها و la منبع فایل صفت
برخلاف کامپایلرهای سنتی جاوا، کامپایلر AspectJ ممکن است در موارد خاصی تولید کند
فایل های کلاسی از چندین فایل منبع متأسفانه، فرمت فایل کلاس جاوا اصلی است
چندین ویژگی SourceFile را پشتیبانی نمی کند. به منظور اطمینان از تمام فایل منبع
اطلاعات موجود است، کامپایلر AspectJ ممکن است در برخی موارد چندین نام فایل را رمزگذاری کند
در ویژگی SourceFile. هنگامی که جاوا VM ردیابی پشته ای ایجاد می کند، از آن استفاده می کند
ویژگی برای تعیین فایل منبع.

(کامپایلر AspectJ 1.0 از پسوندهای فایل .class JSR-45 نیز پشتیبانی می کند.
به دیباگرهای سازگار (مانند jdb در جاوا 1.4.1) اجازه دهید تا فایل و خط مناسب را شناسایی کنند.
حتی فایل های منبع زیادی برای یک کلاس داده شده است. پشتیبانی JSR-45 برای ajc در برنامه ریزی شده است
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 است).

در مثال ما از ردیاب استثنای اشاره گر تهی، خط شروع مجازی 1030 است.
از آنجایی که فایل SynchAspect.java از خط 1000 [1k] "شروع می شود"، LineNumber به خط اشاره می کند.
30 از SynchAspect.java.

بنابراین، هنگامی که با چنین ردپای پشته ای مواجه می شوید، راه یافتن مکان منبع واقعی این است
لیست اعداد "خط شروع" را نگاه کنید تا اعداد زیر خط نشان داده شده را پیدا کنید
عدد. این فایلی است که در واقع می توان مکان منبع را پیدا کرد. سپس، تفریق کنید
آن "خط شروع" از شماره خط نشان داده شده برای پیدا کردن شماره خط واقعی در آن
فایل.

در یک فایل کلاس که فقط از یک فایل منبع می آید، کامپایلر AspectJ تولید می کند
ویژگی های SourceFile مطابق با کامپایلرهای سنتی جاوا.

آجیک(1)

با استفاده از خدمات onworks.net از ajc آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad