मैं अपवाद फेंकने पर उत्पन्न होने वाले स्टैक ट्रेस को अक्षम करना चाहता हूं। मैं का इस्तेमाल किया है,जावा प्रोग्राम में स्टैक ट्रेस पीढ़ी को कैसे अक्षम करें?
Runtime.getRuntime().traceInstructions(false);
Runtime.getRuntime().traceMethodCalls(false);
लेकिन अभी भी मैं देख सकता था ट्रेस उत्पन्न हो रही है। आप ऐसा कैसे कर सकते हैं? इसके अलावा मुझे यह पता लगाने की ज़रूरत है कि कोई मेरी कक्षा को डीबग कर रहा है या नहीं।
मैं सभी अपवाद निशान अक्षम करना चाहता हूं। मैं obfuscation का उपयोग नहीं कर सकता क्योंकि मेरा उत्पाद एक एसडीके है जिसका उपयोग विकास में किया जाएगा। मैं एक रनटाइम भी पेश कर रहा हूं जिसका उपयोग तब किया जाता है जब लोग अपने एसडीके का उपयोग करके बनाए गए अपने अनुप्रयोगों को तैनात करना चाहते हैं। मेरी आवश्यकता यह है कि मेरे रनटाइम जार का उपयोग करने वाले किसी भी व्यक्ति को लिखे गए कोड को डीबग करने में सक्षम नहीं होना चाहिए ... या कम से कम मैं अपने रनटाइम जार से स्टैक ट्रेस पीढ़ी से बचकर इसे डीबग करना कठिन बना दूंगा।
एक तरीका यह है कि मैं ने पाया है कि सभी अपवाद है कि मेरे क्रम जार से होने वाले कर रहे हैं, मैं सिर्फ उन्हें पकड़ने और अपवाद वस्तु पर एक खाली StackTraceElement सरणी की स्थापना की और इसे फिर से फेंक ... है
ऐसी आवश्यकता क्यों है? मान लीजिए कि आप मेरे एसडीके का उपयोग कर एक एप्लीकेशन विकसित करते हैं। (एसडीके जार आपके आवेदन के साथ बंडल नहीं कर सकते हैं..मैंने इसे प्रतिबंधित कर दिया है और यह अंतिम है :) !!) अब अपने क्लाइंट की मशीन पर अपना एप्लिकेशन चलाने के लिए आपको (या क्लाइंट) को इंस्टॉल करने की आवश्यकता है ग्राहक की मशीन पर रनटाइम और अपना आवेदन चलाएं। अब क्या होगा यदि आपका ग्राहक मेरे रनटाइम जार का उपयोग करके अपने स्वयं के अनुप्रयोगों को विकसित करना शुरू कर देता है !! मेरे व्यापार के लिए खतरा है .... भयानक आवश्यकता क्यों है।
स्टैक ट्रेस को अक्षम क्यों करें?
स्टैक ट्रेस पीढ़ी या विधि कॉल ट्रेस पीढ़ी को अक्षम करके मैं अपने रनटाइम जारों के साथ विकासशील कोड बनाना चाहता था और इसलिए मैंने इस तरह से अपना प्रश्न क्यों शुरू किया ... इस तरह की आवश्यकता प्राप्त करने के लिए कुछ अन्य समाधान सुझाएं ...
मुझे लगता है कि दो अलग-अलग यहाँ सवाल कर रहे हैं। आपको उन्हें अलग से संबोधित करना चाहिए। – Joel
कृपया अधिक जानकारी जोड़ें, उदाहरण के लिए आप वास्तव में स्टैक ट्रेस को अक्षम क्यों करना चाहते हैं? "stacktrace अक्षम करें" (जैसा कि यह केवल अपवादों की श्रृंखला है) द्वारा आपको वास्तव में क्या मतलब है –
मुझे लगता है कि आप यहां अपने उपयोगकर्ताओं को खराब सेवा दे रहे हैं। एक एसडीके सहायक अपवाद नहीं दे रहा है? –