मैं कोड का एक टुकड़ा पैकेज करना चाहता हूं जो को जावा 1.5 पर चलाना चाहिए। कोड का एक हिस्सा है जहां वीएम 1.6 वीएम है, तो प्रोग्राम को "बढ़ाया जा सकता है"।जावा: जावा 1.5 और 1.6 कोड दोनों को पैकेज करने का सबसे आसान तरीका
मूल रूप से यह इस पद्धति है:
private long[] findDeadlockedThreads() {
// JDK 1.5 only supports the findMonitorDeadlockedThreads()
// method, so you need to comment out the following three lines
if (mbean.isSynchronizerUsageSupported())
return mbean.findDeadlockedThreads();
else
return mbean.findMonitorDeadlockedThreads();
}
इस 1.5 पर संकलन और अभी तक 1.6 प्रणाली को बुलाती है जब 1.6 पर क्या है करने के लिए सबसे आसान तरीका होगा क्या?
अतीत में मैंने एक अद्वितीय 1.6 वर्ग को संकलित करके कुछ ऐसा किया है जो मैं अपने ऐप के साथ पैकेज करता हूं और 1.6 पर जब क्लासलोडर का उपयोग कर तत्काल उपयोग करता हूं (क्योंकि 1.6 जेवीएम पूरी तरह से 0x32 और 0x31 कक्षाओं को मिलाकर ठीक करता है), लेकिन मुझे लगता है कि यह थोड़ा अधिक है (और थोड़ा दर्दनाक है क्योंकि निर्माण प्रक्रिया के दौरान आपको 0x31 और 0x32 .class फ़ाइलों दोनों बनाना होगा)।
अगर मैं उपरोक्त विधि 1.5 पर संकलित करना चाहता हूं तो मुझे कैसे जाना चाहिए? हो सकता है कि प्रतिबिंब का उपयोग कर, लेकिन फिर कैसे
नोट (मैं प्रतिबिंब से परिचित नहीं हूँ): (लेकिन मैं नहीं करना चाहती http://www.javaspecialists.eu/archive/Issue130.html
: यदि आप उत्सुक हैं, उपरोक्त विधि इस लेख से आता है "तीन पंक्तियों पर टिप्पणी करें" लेख में, मैं इसे 1.5 और 1.6 दोनों पर संकलित और चलाने के लिए चाहता हूं)
@Mnementh: ठीक है, लेकिन फिर क्या होगा प्रतिबिंब कोड देखो की तरह ? – SyntaxT3rr0r
मैंने प्रतिबिंब-कोड शामिल करने के लिए अपना उत्तर संपादित किया। – Mnementh
@Mnementh: +1 शानदार ... मैं इसे आज दोपहर सेट करने की कोशिश करूंगा :) – SyntaxT3rr0r