मैं अपने जावा प्रोग्राम को एक से अधिक जावा एजेंट के साथ कैसे शुरू करूं?


82

मुझे पता है कि जावा एजेंट के साथ जावा प्रोमग शुरू करने का तरीका:

java -javaagent:myAgent.jar MyJavaProgram

लेकिन क्या होगा अगर मैं अपने प्रोग्राम को इंस्ट्रूमेंट करने के लिए 2 या अधिक जावा एजेंट जोड़ना चाहता हूं? मैं java -javaagent को फिर से लाना नहीं चाहता: ... हर एजेंट के लिए मुझे JVM में लोड करना होगा।

मैंने कुछ इस तरह की कोशिश की है:

java -javaagent:agentA.jar, agentB.jar MyJavaProgram

या इस तरह का कुछ:

java -javaagent:agentA.jar agentB.jar MyJavaProgram

लेकिन कोई सफलता नहीं मिली।

क्या मेरी समस्या को हल करने का कोई जवाब है?

धन्यवाद।

जवाबों:



57

ऐसा प्रतीत होता है कि आप कई तर्कों का उपयोग करके ऐसा कर सकते हैं। से प्रलेखन :

कमांड-लाइन इंटरफ़ेस के साथ कार्यान्वयन पर, इस लाइन को कमांड-लाइन में जोड़कर एक एजेंट शुरू किया जाता है:

-javaagent:jarpath[=options] 

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

(मेरा जोर)


2

उपरोक्त उत्तरों को जोड़ना, यदि आप चींटी का उपयोग कर रहे हैं और सर्वर शुरू <jvmargs />करने के -javaagentलिए एक से अधिक जार के साथ शामिल करना चाहते हैं , तो यहां मैं यह कैसे बताऊं,

build.xml

<target name="blah">
...
    <jvmarg value="-javaagent:${jar1.path}" />
    <jvmarg value="-javaagent:${jar2.path}" />
...
</target>

1

कई जावा एजेंटों का समर्थन करने के लक्ष्य के साथ एक नई परियोजना है। वर्तमान में यह विशिष्ट लोगों तक सीमित है।

एजेंट बॉन्ड एक सुपर एजेंट है, जो कई अन्य एजेंटों को लपेटता है और भेजता है। इस तरह, आपको केवल JVM के भीतर सिंगल डेटा कॉन्फ़िगरेशन डेटा (जिसमें कई अलग-अलग भाग होते हैं) के साथ एक एजेंट स्थापित करना होगा।

देखें https://github.com/fabric8io/agent-bond/blob/master/README.md जानकारी के लिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.