अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

एजेसी - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में एजेसी चलाएं

यह कमांड एजेसी है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


एजेसी - एस्पेक्टजे और जावा भाषाओं के लिए कंपाइलर और बाइटकोड वीवर

SYNOPSIS


एजेसी [ऑप्शंस] [फ़ाइल ... | @फ़ाइल ... | -आर्गफ़ाइल फ़ाइल ... ]

Description


RSI एजेसी कमांड AspectJ और Java स्रोत और .class फ़ाइलों को संकलित और बुनता है, उत्पादन करता है
किसी भी जावा वीएम (1.1 या बाद के संस्करण) के अनुरूप .class फ़ाइलें। यह संकलन और को जोड़ती है
बाइटकोड बुनाई और वृद्धिशील निर्माण का समर्थन करता है; आप रन-टाइम पर बाइटकोड भी बुन सकते हैं
का उपयोग "" >.

विकल्पों के बाद के तर्क संकलित करने के लिए स्रोत फ़ाइल निर्दिष्ट करते हैं। स्रोत निर्दिष्ट करने के लिए
कक्षाएं, उपयोग -इनपाथ (नीचे)। फ़ाइलें सीधे कमांड लाइन पर या में सूचीबद्ध की जा सकती हैं
फ़ाइल। -आर्गफ़ाइल पट्टिका और @पट्टिका रूप समतुल्य हैं और उनकी व्याख्या अर्थ के रूप में की जाती है
निर्दिष्ट फ़ाइल में सूचीबद्ध सभी तर्क।

नोट: आपको स्पष्ट रूप से उत्तीर्ण होना होगा एजेसी सभी आवश्यक स्रोत. स्रोत को शामिल करना सुनिश्चित करें
न केवल पहलुओं या पॉइंटकट्स के लिए बल्कि किसी भी प्रभावित प्रकार के लिए भी। सभी को निर्दिष्ट करना
स्रोत आवश्यक है क्योंकि, javac के विपरीत, ajc स्रोतपथ की खोज नहीं करता है
कक्षाएं. (किस प्रभावित प्रकार की आवश्यकता हो सकती है, इसकी चर्चा के लिए देखें RSI पहलूजे
प्रोग्रामिंग मार्गदर्शक, कार्यान्वयन परिशिष्ट ../progguide/Implementation.html) .

स्रोत निर्दिष्ट करने के लिए, आप स्रोत फ़ाइलों को तर्क के रूप में सूचीबद्ध कर सकते हैं या विकल्पों का उपयोग कर सकते हैं -sourceroots
or -इनपाथ. यदि किसी भी प्रकार के लिए एकाधिक स्रोत हैं, तो परिणाम ajc के बाद से अपरिभाषित है
यह निर्धारित करने का कोई तरीका नहीं है कि कौन सा स्रोत सही है। (ऐसा अक्सर तब होता है जब उपयोगकर्ता
इनपाथ पर गंतव्य निर्देशिका शामिल करें और पुनर्निर्माण करें।)

ऑप्शंस
-इन्जर्स जारलिस्ट
बहिष्कृत: 1.2 के बाद से, -इनपाथ का उपयोग करें, जो निर्देशिकाएं भी लेता है।

-इनपाथ पथ
आउटपुट में किसी भी .class फ़ाइल को स्रोत बाइटकोड के रूप में स्वीकार करें, इसमें इन्हें शामिल किया जाएगा
कक्षाएं, संभवतः किसी भी लागू पहलू के साथ बुनी गई हैं। पथ एक है
तर्क जिसमें ज़िप फ़ाइलों या निर्देशिकाओं के लिए पथों की एक सूची शामिल है, द्वारा सीमांकित
प्लेटफ़ॉर्म-विशिष्ट पथ सीमांकक।

-पहलू पथ पथ
सभी स्रोतों में पथ पर जार फ़ाइलों और निर्देशिकाओं से बाइनरी पहलुओं को बुनें।
पहलुओं को कंपाइलर के उसी संस्करण द्वारा आउटपुट किया जाना चाहिए था। कब
आउटपुट क्लास चलाने पर, रन क्लासपाथ में सभी पहलूपथ शामिल होने चाहिए
प्रविष्टियाँ। पथ, क्लासपाथ की तरह, एक एकल तर्क है जिसमें पथों की एक सूची होती है
जार फ़ाइलों के लिए, प्लेटफ़ॉर्म-विशिष्ट क्लासपाथ डिलीमीटर द्वारा सीमांकित।

-आर्गफ़ाइल पट्टिका
फ़ाइल में तर्कों की एक पंक्ति-सीमांकित सूची है। फ़ाइल की प्रत्येक पंक्ति
इसमें एक विकल्प, फ़ाइल नाम, या तर्क स्ट्रिंग (उदाहरण के लिए, एक क्लासपाथ या) होना चाहिए
इनपाथ)। फ़ाइल से पढ़े गए तर्कों को तर्क सूची में डाला जाता है
आदेश। फ़ाइल में संबंधित पथों की गणना निर्देशिका से की जाती है
फ़ाइल युक्त (वर्तमान कार्यशील निर्देशिका नहीं)। टिप्पणियाँ, जैसे जावा में,
के साथ शुरू // और पंक्ति के अंत तक बढ़ाएँ। तर्क में निर्दिष्ट विकल्प
फ़ाइलें मौजूदा विकल्प मानों को विस्तारित करने के बजाय ओवरराइड कर सकती हैं, इसलिए बचें
जैसे विकल्प निर्दिष्ट करना -क्लासपाथ तर्क फ़ाइलों में इसके विपरीत
तर्क फ़ाइल एकमात्र बिल्ड विनिर्देश है। फार्म @फ़ाइल के समान है
निर्दिष्ट करना -आर्गफ़ाइल पट्टिका.

-आउटजर आउटपुट.जर
आउटपुट क्लास को ज़िप फ़ाइल आउटपुट.जर में रखें।

-outxml डिफ़ॉल्ट नाम के साथ लोड-टाइम बुनाई के लिए aop.xml फ़ाइल जेनरेट करें।

-आउटएक्सएमएलफ़ाइल कस्टम/aop.xml
कस्टम नाम के साथ लोड-टाइम बुनाई के लिए aop.xml फ़ाइल जेनरेट करें।

वृद्धिशील
कंपाइलर को लगातार चलाएँ। प्रारंभिक संकलन के बाद, संकलक करेगा
जब तक यह मानक इनपुट से एक नई पंक्ति नहीं पढ़ता, तब तक पुन: संकलित करने की प्रतीक्षा करें, और करेगा
जब यह 'q' पढ़े तो छोड़ दें। यह केवल आवश्यक घटकों को पुन: संकलित करेगा, इसलिए a
पुनर्संकलन दूसरे संकलन की तुलना में बहुत तेज़ होना चाहिए। इस आवश्यकता है
-sourceroots.

-sourceroots डिरपाथ्स
सूचीबद्ध किसी भी निर्देशिका के अंतर्गत सभी .java या .aj स्रोत फ़ाइलें ढूंढें और बनाएं
डिरपाथ्स। डिरपाथ, क्लासपाथ की तरह, एक एकल तर्क है जिसमें एक सूची होती है
निर्देशिकाओं के पथ, प्लेटफ़ॉर्म-विशिष्ट क्लासपाथ डिलीमीटर द्वारा सीमांकित।
-वृद्धिशील द्वारा आवश्यक.

-क्रॉसरेफ़्स
आउटपुट डायरेक्टरी में एक बिल्ड .ajsym फ़ाइल जेनरेट करें। देखने के लिए उपयोग किया जाता है
AspectJ ब्राउज़र जैसे टूल द्वारा संदर्भों को क्रॉसकटिंग करना।

-emacssym emacs समर्थन के लिए .ajesym प्रतीक फ़ाइलें उत्पन्न करें (अप्रत्याशित)।

-Xlint -Xlint के समान:चेतावनी (डिफ़ॉल्ट रूप से सक्षम)

-एक्सलिंट:{स्तर}
संभावित प्रोग्रामिंग गलतियों के बारे में संदेशों के लिए डिफ़ॉल्ट स्तर सेट करें
क्रॉसकटिंग कोड. {स्तर} अनदेखी, चेतावनी या त्रुटि हो सकती है। यह ओवरराइड हो जाता है
पहलूjtools.jar से org/aspectj/weaver/XlintDefault.properties में प्रविष्टियाँ, लेकिन
-Xlintfile विकल्प का उपयोग करके निर्धारित स्तरों को ओवरराइड नहीं करता है।

-एक्सलिंटफ़ाइल संपत्तिफ़ाइल
विशिष्ट क्रॉसकटिंग संदेशों के लिए स्तर निर्धारित करने के लिए गुण फ़ाइल निर्दिष्ट करें।
प्रॉपर्टीफ़ाइल जावा .properties फ़ाइल का एक पथ है जो समान संपत्ति लेता है
नाम और मान org/aspectj/weaver/XlintDefault.properties के रूप में
Aspectjtools.jar, जिसे यह ओवरराइड भी करता है।

-कंपाइलर विकल्पों और उपयोग पर जानकारी उत्सर्जित करने में सहायता करें

-संस्करण AspectJ कंपाइलर के संस्करण का उत्सर्जन करें

-क्लासपाथ पथ
निर्दिष्ट करें कि उपयोगकर्ता वर्ग फ़ाइलें कहां मिलेंगी। पथ एक एकल तर्क है जिसमें a शामिल है
प्लेटफ़ॉर्म-विशिष्ट द्वारा सीमांकित फ़ाइलों या निर्देशिकाओं को ज़िप करने के पथों की सूची
पथ सीमांकक.

-बूटक्लासपथ पथ
प्रकारों के मूल्यांकन के प्रयोजनों के लिए वीएम के बूटक्लासपाथ के स्थान को ओवरराइड करें
संकलन. पथ एक एकल तर्क है जिसमें फ़ाइलों को ज़िप करने के लिए पथों की एक सूची होती है
निर्देशिकाएँ, प्लेटफ़ॉर्म-विशिष्ट पथ सीमांकक द्वारा सीमांकित।

-एक्सडिर्स पथ
प्रकारों के मूल्यांकन के प्रयोजनों के लिए वीएम की एक्सटेंशन निर्देशिकाओं के स्थान को ओवरराइड करें
संकलन करते समय. पथ एक एकल तर्क है जिसमें पथों की एक सूची होती है
निर्देशिकाएँ, प्लेटफ़ॉर्म-विशिष्ट पथ सीमांकक द्वारा सीमांकित।

-d निर्देशिका
निर्दिष्ट करें कि जेनरेट की गई .क्लास फ़ाइलें कहाँ रखी जाएँ। यदि निर्दिष्ट नहीं है, निर्देशिका
वर्तमान कार्यशील डीआईआर के लिए डिफ़ॉल्ट।

-गोट लगाना [1.1 सेवा मेरे 1.5]
क्लासफ़ाइल लक्ष्य सेटिंग निर्दिष्ट करें (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 है)। -स्रोत 1.3 का उपयोग करते समय,
जावा 1.4 के तहत मान्य एक एस्टर () स्टेटमेंट के परिणामस्वरूप कंपाइलर त्रुटि होगी।
-स्रोत 1.4 का उपयोग करते समय, उपचार करें जोर एक कीवर्ड के रूप में और दावे लागू करें
1.4 भाषा विशिष्टता के अनुसार। -स्रोत 1.5, जावा 5 भाषा का उपयोग करते समय
सुविधाओं की अनुमति है.

-nowarn कोई चेतावनी न भेजें ('-warn:none' के बराबर) यह संदेशों को दबाता नहीं है
द्वारा उत्पन्न घोषित चेतावनी or Xlint.

-चेतावनी: आइटम
संदिग्ध कोड की अल्पविराम-सीमांकित सूची के किसी भी उदाहरण के लिए चेतावनियाँ उत्सर्जित करें
(उदाहरण के लिए '-warn:unusedLocals,deprecation'):

कंस्ट्रक्टर नाम के साथ कंस्ट्रक्टरनाम विधि
packageDefaultMethod पैकेज-डिफ़ॉल्ट विधि को ओवरराइड करने का प्रयास करता है
बहिष्कृत प्रकार या सदस्य का बहिष्करण उपयोग
नकाबपोश कैचब्लॉक छिपा हुआ कैच ब्लॉक
unusedLocals स्थानीय वैरिएबल कभी नहीं पढ़ा जाता
unusedArguments विधि तर्क कभी नहीं पढ़ा गया
unusedImports आयात विवरण फ़ाइल में कोड द्वारा उपयोग नहीं किया गया
कोई भी सभी कंपाइलर चेतावनियों को नहीं दबाता है

-चेतावनी: कोई नहीं द्वारा उत्पन्न संदेशों को दबाता नहीं है घोषित चेतावनी or Xlint.

-निंदा
-चेतावनी:बहिष्कार के समान

-कोईआयातत्रुटि नहीं
अनसुलझे आयातों के लिए कोई त्रुटि न छोड़ें

-proceedOnError
त्रुटि के बाद संकलन करते रहें, समस्या विधियों के साथ क्लास फ़ाइलों को डंप करें

-g:[पंक्तियाँ, संस्करण, स्रोत]
डिबग विशेषता स्तर, जो तीन रूप ले सकता है:

-जी सभी डीबग जानकारी ('-जी:लाइनें, संस्करण, स्रोत')
-जी: कोई नहीं, कोई डिबग जानकारी नहीं
-जी: {आइटम} किसी भी/सभी [लाइनों, वर्र्स, स्रोत] के लिए डीबग जानकारी, उदाहरण के लिए,
-जी: लाइनें, स्रोत

-सभी स्थानीय लोगों को सुरक्षित रखें
कोड जनरेशन के दौरान (डीबगिंग की सुविधा के लिए) सभी स्थानीय वेरिएबल्स को सुरक्षित रखें।

-संदर्भ जानकारी
संदर्भ जानकारी की गणना करें.

-एन्कोडिंग प्रारूप
डिफ़ॉल्ट स्रोत एन्कोडिंग प्रारूप निर्दिष्ट करें। प्रति फ़ाइल पर कस्टम एन्कोडिंग निर्दिष्ट करें
प्रत्येक इनपुट स्रोत फ़ाइल/फ़ोल्डर नाम को '[एन्कोडिंग]' के साथ जोड़कर आधार बनाएं।

-verbose एक्सेस की गई/संसाधित संकलन इकाइयों के बारे में संदेश भेजें

-शोवेवइन्फो
बुनाई के बारे में संदेश भेजें

-लगाना पट्टिका कंपाइलर संदेशों के लिए एक लॉग फ़ाइल निर्दिष्ट करें।

-प्रगति प्रगति दिखाएं (-लॉग मोड की आवश्यकता है)।

-समय प्रदर्शन गति की जानकारी।

-noExit संकलन के अंत में System.exit(n) को कॉल न करें (यदि कोई त्रुटि नहीं है तो n=0)

-दोहराना N संकलन प्रक्रिया को N बार दोहराएं (आमतौर पर प्रदर्शन विश्लेषण करने के लिए)।

-एक्सटर्मिनेटआफ्टरकंपाइलेशन
बुनाई से पहले कंपाइलर को समाप्त करने का कारण बनता है

-XaddSerialVersionUID
कंपाइलर को किसी भी प्रकार के सीरियलवर्जनयूआईडी फ़ील्ड की गणना करने और जोड़ने का कारण बनता है
क्रमांकन को लागू करना जो किसी पहलू से प्रभावित हो। मैदान है
बुनाई होने से पहले वर्ग के आधार पर गणना की जाती है।

-Xreweavable [:संपीड़ित]
(प्रायोगिक - अब डिफ़ॉल्ट के रूप में बहिष्कृत) वीवर को पुन: उपयोग योग्य मोड में चलाता है
इसके कारण यह बुने हुए वर्गों का निर्माण करता है जिन्हें फिर से बुना जा सकता है, इसके अधीन
उन सभी प्रकारों को फिर से बुनने की कोशिश करने पर प्रतिबंध है जो बुने हुए की सलाह देते हैं
प्रकार सुलभ होना चाहिए.

-एक्सनोइनलाइन
(प्रायोगिक) सलाह के इर्द-गिर्द मत घूमें

-Xincrementalफ़ाइल पट्टिका
(प्रायोगिक) यह वृद्धिशील मोड की तरह काम करता है, लेकिन इसके बजाय फ़ाइल का उपयोग करता है
कंपाइलर को नियंत्रित करने के लिए मानक इनपुट। यह हर बार फ़ाइल को पुन: संकलित करेगा
फ़ाइल हटा दिए जाने पर बदल गया और रुक गया।

-XserializableAspects
(प्रायोगिक) आम तौर पर पहलुओं को क्रमबद्ध घोषित करना एक त्रुटि है। यह
विकल्प उस प्रतिबंध को हटा देता है।

-XnotReweavable
(प्रायोगिक) ऐसी क्लास फ़ाइलें बनाएं जिन्हें बाद में AspectJ द्वारा दोबारा नहीं बनाया जा सके।

-Xajruntimelevel:1.2, ajruntimelevel:1.5
(प्रायोगिक) ऐसे कोड को उत्पन्न करने की अनुमति देता है जो 1.2 या 1.5 स्तर को लक्षित करता है
AspectJ रनटाइम (डिफ़ॉल्ट 1.5)

पट्टिका नामों
ajc इनमें से किसी एक के साथ स्रोत फ़ाइलें स्वीकार करता है जावा विस्तार या .अज विस्तार। हम
सामान्य रूप से उपयोग करें जावा AspectJ सिस्टम में हमारी सभी फ़ाइलों के लिए - वे फ़ाइलें जिनमें पहलू होते हैं
साथ ही वे फ़ाइलें जिनमें कक्षाएं शामिल हैं। हालाँकि, यदि आपको यंत्रवत् आवश्यकता है
AspectJ की अतिरिक्त कार्यक्षमता का उपयोग करने वाली फ़ाइलों को शुद्ध फ़ाइलों से अलग करें
जावा हम उपयोग करने की सलाह देते हैं .अज उन फ़ाइलों के लिए एक्सटेंशन.

हम नामकरण परंपराओं जैसे यांत्रिक भेद के अन्य तरीकों को हतोत्साहित करना चाहेंगे
या के पक्ष में उप-पैकेज .अज विस्तार।

· फ़ाइल नाम परंपराओं को लागू करना कठिन है और इससे आपके पहलुओं के लिए अजीब नाम सामने आते हैं।
के बजाय ट्रेसिंगएस्पेक्ट.जावा हम उपयोग करने की सलाह देते हैं ट्रेसिंग.एजे (या केवल ट्रेसिंग.जावा)
बजाय.

· उप-पैकेज सिस्टम में पहलुओं को उनके प्राकृतिक स्थान से बाहर ले जाते हैं और एक बना सकते हैं
विशेषाधिकार प्राप्त पहलुओं की कृत्रिम आवश्यकता। जैसे उप-पैकेज जोड़ने के बजाय
पहलुओं हम का उपयोग करने की सलाह देते हैं .अज एक्सटेंशन और इन फ़ाइलों को अपने में शामिल करना
इसके बजाय मौजूदा पैकेज।

अनुकूलता
AspectJ जावा प्रोग्रामिंग भाषा का एक संगत एक्सटेंशन है। AspectJ कंपाइलर
का पालन करता है RSI जावा भाषा विशिष्टता, दूसरा संस्करण (किताब)
http://java.sun.com/docs/books/jls/index.html और RSI जावा वास्तविक मशीन
विशिष्टता, दूसरा संस्करण (किताब) http://java.sun.com/docs/books/vmspec/index.html और
किसी भी जावा 2 संगत प्लेटफ़ॉर्म पर चलता है। यह जो कोड उत्पन्न करता है वह किसी भी जावा 1.1 या पर चलता है
बाद में संगत मंच। जावा और इसके साथ अनुकूलता के बारे में अधिक जानकारी के लिए
AspectJ की पिछली रिलीज़, देखें "" >.

उदाहरण
A सरल उदाहरण

दो फ़ाइलें संकलित करें:

ajc हैलोवर्ल्ड.जावा ट्रेस.जावा

An उदाहरण का उपयोग -आर्गफ़ाइल/@

कमांड लाइन पर फ़ाइल नाम निर्दिष्ट करने से बचने के लिए, स्रोत फ़ाइलों को एक लाइन-सीमांकित में सूचीबद्ध करें
टेक्स्ट argfile. स्रोत फ़ाइल पथ argfile के पूर्ण या सापेक्ष हो सकते हैं, और हो सकते हैं
@-संदर्भ द्वारा अन्य argfiles शामिल करें। निम्न फ़ाइल sources.list शामिल हैं
निरपेक्ष और सापेक्ष फ़ाइलें और @-संदर्भ:

गुई.जावा
/घर/उपयोगकर्ता/src/Library.java
डेटा/रिपॉजिटरी.जावा
डेटा/एक्सेस.जावा
@../../common/common.lst
@/घर/उपयोगकर्ता/src/lib.lst
देखें/बॉडी/ArrayView.java

-argfile या @ फॉर्म का उपयोग करके फ़ाइलें संकलित करें:

ajc -argfile source.lst
एजेसी @sources.lst

Argfiles को jikes और javac द्वारा भी समर्थित किया जाता है, इसलिए आप हाइब्रिड बिल्ड में फ़ाइलों का उपयोग कर सकते हैं।
हालाँकि, समर्थन भिन्न होता है:

· केवल एजेसी ही कमांड-लाइन विकल्प स्वीकार करता है

· जिक्स और जावैक आंतरिक @argfile संदर्भ स्वीकार नहीं करते हैं।

· जिक्स और जावैक कमांड लाइन पर केवल @फाइल फॉर्म स्वीकार करते हैं।

An उदाहरण का उपयोग -इनपाथ और -पहलू पथ

-इनपाथ का उपयोग करके बाइटकोड बुनाई: एस्पेक्टजे 1.2 इनपुट ज़िप/जार में .क्लास फ़ाइलों की बुनाई का समर्थन करता है
फ़ाइलें और निर्देशिकाएँ। इनपुट जार का उपयोग करना संबंधित स्रोत फ़ाइलों को संकलित करने जैसा है,
और सभी बायनेरिज़ आउटपुट के लिए उत्सर्जित होते हैं। हालाँकि जावा-संगत कंपाइलर भिन्न हो सकते हैं
उनके आउटपुट, एजेसी को जेवैक, जिक्स, एक्लिप्स द्वारा निर्मित किसी भी क्लास फाइल को इनपुट के रूप में लेना चाहिए।
और, ज़ाहिर है, एजेसी। -इनपाथ में शामिल पहलुओं को अन्य .क्लास की तरह बुना जाएगा
फ़ाइलें, और वे हमेशा की तरह अन्य प्रकारों को प्रभावित करेंगी।

-aspectpath का उपयोग करते हुए पहलू पुस्तकालय: AspectJ 1.1 केवल-पढ़ने योग्य पुस्तकालयों से बुनाई का समर्थन करता है
पहलुओं से युक्त. इनपुट जार की तरह, वे सभी इनपुट को प्रभावित करते हैं; इनपुट जार के विपरीत, वे
वे स्वयं आउटपुट के रूप में प्रभावित या उत्सर्जित नहीं होते हैं। पहलू पुस्तकालयों के साथ संकलित स्रोत
अपने क्लासपाथ पर समान पहलू पुस्तकालयों के साथ चलाया जाना चाहिए।

निम्नलिखित उदाहरण कमांड-लाइन वातावरण में ट्रेसिंग उदाहरण बनाता है; यह बनाता है
एक केवल पढ़ने योग्य पहलू पुस्तकालय, इनपुट बाइटकोड के रूप में उपयोग के लिए कुछ कक्षाओं को संकलित करता है, और संकलित करता है
पहलू पुस्तकालय के साथ कक्षाएं और अन्य स्रोत।

ट्रेसिंग उदाहरण AspectJ वितरण ({aspectj}/doc/examples/tracing) में है। यह
निम्न फ़ाइलों का उपयोग करता है:

पहलूj1.1/
bin /
एजेसी
देय /
पहलूjrt.jar
उदाहरण /
ट्रेसिंग/
सर्कल.जावा
उदाहरणमुख्य.जावा
देय /
AbstractTrace.java
ट्रेसमायक्लासेस.जावा
notrace.lst
स्क्वायर.जावा
ट्रेसलिब.एलएसटी
ट्रेसv3.lst
TwoDShape.java
संस्करण3/
ट्रेस.जावा
ट्रेसमायक्लासेस.जावा

नीचे, पथ विभाजक को ";" के रूप में लिया गया है, लेकिन फ़ाइल विभाजक को "/" के रूप में लिया गया है। सभी आदेश हैं
एक पंक्ति पर. आवश्यकतानुसार पथों और आदेशों को अपने परिवेश में समायोजित करें।

पथ, क्लासपाथ और वर्तमान निर्देशिका सेटअप करें:

सीडी उदाहरण
निर्यात ajrt=../lib/aspectjrt.jar
निर्यात क्लासस्पैट = "$ajrt"
निर्यात पथ = "../ bin:$पथ"

केवल पढ़ने योग्य ट्रेसिंग लाइब्रेरी बनाएं:

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

एक चरण में ट्रेसिंग के साथ एप्लिकेशन बनाएं:

एजेसी -एस्पेक्टपाथ ट्रेसलिब.जर -आर्गफाइल ट्रेसिंग/नोट्रेस.एलएसटी -आउटजर ट्रेसएप.जर

ट्रेसिंग के साथ एप्लिकेशन चलाएँ:

जावा -क्लासपाथ "$ajrt;tracedapp.jar;tracelib.jar" ट्रेसिंग.ExampleMain

दो चरणों में बायनेरिज़ से ट्रेसिंग के साथ एप्लिकेशन बनाएं:

· (ए) एप्लिकेशन कक्षाएं बनाएं (प्रदर्शन के लिए जावैक का उपयोग करके):

एमकेडीआईआर कक्षाएं
javac -d क्लासेस ट्रेसिंग/*.java
जार सीएफएम ऐप.जर-सी कक्षाएं।

· (बी) ट्रेसिंग के साथ एप्लिकेशन बनाएं:

एजेसी -इनपाथ ऐप.जर -एस्पेक्टपाथ ट्रेसलिब.जर -आउटजर ट्रेसएप.जर

एप्लिकेशन को ट्रेसिंग के साथ चलाएँ (ऊपर के समान):

जावा -क्लासपाथ "$ajrt;tracedapp.jar;tracelib.jar" ट्रेसिंग.ExampleMain

बिना ट्रेस किए एप्लिकेशन चलाएँ:

java -classpath "app.jar" ट्रेसिंग.ExampleMain

RSI पहलूजे संकलक API
AspectJ कंपाइलर पूरी तरह से जावा में लागू किया गया है और इसे जावा क्लास कहा जा सकता है।
एकमात्र इंटरफ़ेस जिसे सार्वजनिक माना जाना चाहिए वह सार्वजनिक विधियाँ हैं
org.aspectj.tools.ajc.Main. जैसे, मुख्य(स्ट्रिंग[] तर्क) मानक लेता है एजेसी आदेश
पंक्ति तर्क. इसका मतलब है कि कंपाइलर को चलाने का एक वैकल्पिक तरीका है

जावा org.aspectj.tools.ajc.Main [विकल्प...] [फ़ाइल ...]

कंपाइलर संदेशों को प्रोग्रामेटिक रूप से एक्सेस करने के लिए, विधियों का उपयोग करें सेटहोल्डर(IMessageHolder
धारक) और / या चलाएँ (स्ट्रिंग[] तर्क, IMessageHolder धारक). एजेसी को प्रत्येक संदेश की रिपोर्ट करता है
धारक का उपयोग करना IMessageHolder.handleMessage (..). यदि आप केवल संदेश एकत्र करना चाहते हैं,
उपयोग संदेशहैंडलर जैसे तुम्हारा IMessageHolder. उदाहरण के लिए, संकलित करें और चलाएँ
के साथ चल रहा है पहलूjtools.jar क्लासपाथ पर:

आयात org.aspectj.bridge.*;
आयात org.aspectj.tools.ajc.Main;
आयात java.util.Arrays;

सार्वजनिक वर्ग WrapAjc {
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {
मुख्य संकलक = नया मुख्य();
मैसेजहैंडलर एम = नया मैसेजहैंडलर();
कंपाइलर.रन(आर्ग्स, एम);
इमेजेज [] एमएस = एम। गेटमैसेज (शून्य, सच);
System.out.println('संदेश:' + Arrays.asList(एमएस));
}
}

धुआँरा निशान और la स्रोत दस्तावेज गुण
पारंपरिक जावा कंपाइलरों के विपरीत, AspectJ कंपाइलर कुछ मामलों में उत्पन्न हो सकता है
एकाधिक स्रोत फ़ाइलों से क्लासफ़ाइलें। दुर्भाग्य से, मूल जावा क्लास फ़ाइल स्वरूप
एकाधिक सोर्सफ़ाइल विशेषताओं का समर्थन नहीं करता। यह सुनिश्चित करने के लिए कि सभी स्रोत फ़ाइल
जानकारी उपलब्ध है, AspectJ कंपाइलर कुछ मामलों में एकाधिक फ़ाइल नामों को एन्कोड कर सकता है
सोर्सफ़ाइल विशेषता में। जब जावा वीएम स्टैक ट्रेस उत्पन्न करता है, तो वह इसका उपयोग करता है
स्रोत फ़ाइल निर्दिष्ट करने के लिए विशेषता।

(एस्पेक्टजे 1.0 कंपाइलर जेएसआर-45 के .क्लास फ़ाइल एक्सटेंशन का भी समर्थन करता है। ये
सही फ़ाइल और लाइन की पहचान करने के लिए अनुरूप डिबगर्स (जैसे जावा 1.4.1 में jdb) को अनुमति दें
यहाँ तक कि एक ही कक्षा के लिए कई स्रोत फ़ाइलें भी दी गईं। एजेसी के लिए जेएसआर-45 समर्थन की योजना बनाई गई है
AspectJ 1.1, लेकिन प्रारंभिक रिलीज़ में नहीं है। पूरी तरह से डिबग करने योग्य .class फ़ाइलें प्राप्त करने के लिए, उपयोग करें
-XnoInline विकल्प।)

संभवतः एकमात्र समय जब आप इस प्रारूप को देख सकते हैं, जब आप स्टैक ट्रेस देखते हैं, जहां आप
प्रारूप के निशान मिल सकते हैं

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

जहां सामान्य के बजाय

फ़ाइल: लाइननंबर

प्रारूप, आप देखिए

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

इस मामले में, लाइननंबर लाइनों में सामान्य ऑफसेट और वास्तविक की "स्टार्ट लाइन" है
स्रोत दस्तावेज। इसका मतलब है कि आप स्रोत फ़ाइल की पहचान करने और खोजने दोनों के लिए लाइननंबर का उपयोग करते हैं
मुद्दे पर पंक्ति. प्रत्येक फ़ाइल के बाद [कोष्ठक] में संख्या आपको आभासी "प्रारंभ" बताती है
लाइन" उस फ़ाइल के लिए (पहली फ़ाइल की शुरुआत 0 से है)।

हमारे उदाहरण में नल पॉइंटर अपवाद ट्रेस से, वर्चुअल स्टार्ट लाइन 1030 है।
चूंकि फ़ाइल SynchAspect.java लाइन 1000 [1k] पर "शुरू होती है", लाइननंबर लाइन की ओर इशारा करता है
SynchAspect.java के 30.

इसलिए, जब ऐसे स्टैक ट्रेस का सामना करना पड़ता है, तो वास्तविक स्रोत स्थान खोजने का तरीका क्या है
दिखाई गई लाइन के ठीक नीचे वाले नंबर को खोजने के लिए "स्टार्ट लाइन" नंबरों की सूची देखें
संख्या। यह वह फ़ाइल है जहां स्रोत स्थान वास्तव में पाया जा सकता है। फिर, घटाएँ
उसके भीतर वास्तविक लाइन नंबर खोजने के लिए दिखाए गए लाइन नंबर से वह "स्टार्ट लाइन"।
फ़ाइल.

एक क्लास फ़ाइल में जो केवल एक स्रोत फ़ाइल से आती है, AspectJ कंपाइलर उत्पन्न करता है
सोर्सफाइल विशेषताएँ पारंपरिक जावा कंपाइलरों के अनुरूप हैं।

एजेसी(1)

onworks.net सेवाओं का उपयोग करके ऑनलाइन एजेसी का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad