2015-07-24 6 views
13

मैंने देखा है कि जब भी कोई अपवाद टर्मिनल पर फेंक दिया जाता है, मैं अक्सर एक संक्षिप्त विफलता का पता लगाने इस जैसे मिलती है:टर्मिनल पर सभी जावा अपवाद कैसे मुद्रित करें?

java.lang.NoClassDefFoundError: javafx/application/Application 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.access$100(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: javafx.application.Application 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 13 more 
Exception in thread "main" 

क्या मैं जानना चाहता हूँ, उन सहित ट्रेस के सभी प्रिंट करने का तरीका है ... 13 more

संपादित करें: इस पोस्ट Print full call stack on printStackTrace()? के संभावित डुप्लीकेट के रूप में पहचान की गई है। मैंने बाद वाले को पढ़ा लेकिन मुझे अपने प्रश्न का उत्तर नहीं मिला, मुझे केवल यह जानकारी मिली कि ऐसा क्यों होता है। ,

static void printFullTrace(Throwable throwable){ 
    for(StackTraceElement element: throwable()) 
     System.out.println(element); 
} 

सच्चाई यह है कि आप पहले से ही उन पंक्तियों में पूरे स्टैक ट्रेस को देख रहे हैं, क्योंकि का एक हिस्सा:

+0

दरअसल .. यह entier बात प्रिंट होगा .. यहाँ क्या रोक रहा है अपने कंसोल ... अपने कंसोल के पेज लाइनों को बढ़ाने के (या इसे असीमित बनाने) है, तो आप enterire सूची –

+4

डुप्लिकेट मिल जाएगा /stackoverflow.com/questions/1043378/print-full-call-stack-on-printstacktrace – chengpohi

+0

और मैं मेरे कंसोल @PavanKumarK उन परिवर्तनों को कैसे लागू कर सकते हैं? मैं win7 का उपयोग कर रहा हूं, वैसे, शायद यह सवाल के लिए प्रासंगिक है। – Maslor

उत्तर

4

आप इस प्रकार का विधि के लिए Throwable वस्तु (आपके मामले में Exception) पारित कर सकते हैं यह दोहराया जाता है और ब्रेवटी के लिए छोड़ दिया जाता है। आप तंत्र को बेहतर ढंग से समझ सकते हैं here

+0

हालांकि यह वास्तव में काफी उपयोगी जानकारी है, जो मैं खोज रहा हूं, यदि यह भी मौजूद है, तो मेरे कमांड लाइन को सभी ट्रेस प्रिंट करने का एक आसान तरीका है, लिखने के बजाय "... 13 और" @PavanKumarK ने कहा टिप्पणी करता है कि आप अपने कंसोल की पेज लाइनों को बढ़ा सकते हैं लेकिन अभी तक उसका जवाब विकसित नहीं किया है ... क्या यह संभव है? – Maslor

+0

@Maslor: मैं इसे –

+0

स्पष्टीकरण के लिए धन्यवाद जोड़ लिया है! – Maslor

0
StackTraceElement[] stackTraces = Thread.currentThread().getStackTrace(); 
for (StackTraceElement element : stackTraces) { 
    System.out.println(element); 
} 
+0

मैं एक विकल्प सरल विधि यदि वह मौजूद है, अपने आवेदन में कोड जोड़ने की आवश्यकता नहीं है कि के लिए देख रहा हूँ। – Maslor

+0

@ Recoba20 अपना कोड समझाएं। –

+0

http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#getStackTrace() वह पर्याप्त है, या मुझे कुछ ऐसा याद आ रहा है जिसे आप जानते हैं, लेकिन साझा नहीं करना चाहते हैं? – Recoba20

-1

मानक Windows कंसोल (cmd) सुविधाओं के बहुत ही कम है, तो आप जो कि वहाँ बाहर हैं जैसे स्टेरॉयड पर एक कंसोल स्थापित करने की आवश्यकता है, तो आप एक बड़ा स्क्रॉल बैक करने में सक्षम हो जाएगा। here सूचीबद्ध विकल्पों में एक नज़र डालें।

व्यक्तिगत रूप से मैं cmder का उपयोग करता हूं, जो कि सूची में नहीं है, लेकिन आपको उन सभी का परीक्षण करना चाहिए जो आपको बेहतर फिट करते हैं।

0

आप नीचे दिए गए विधि द्वारा पूरे स्टैक ट्रेस मुद्रित कर सकते हैं। Java Doc for printStackTrace पढ़ना बताएगा कि यह इस तरह से क्यों डिज़ाइन किया गया है। http:/

void printAllTraces(Throwable throwable) { 
     StackTraceElement[] stackTraces = throwable.getStackTrace(); 
     for (StackTraceElement stackTrace: stackTraces) { 
      System.out.println(stackTrace); 
     } 
} 
+0

मैं एक वैकल्पिक सरल विधि की तलाश में हूं जिसके लिए मेरे आवेदन में कोड जोड़ने की आवश्यकता नहीं है, यदि यह मौजूद है। – Maslor

+1

printStackTrace केवल इतना दे सकते हैं और इस क्रम संक्षिप्त होना करने के लिए बनाया गया है। तो थोड़ा कोड जोड़ने के बिना मुझे डर है कि आपको पूरा स्टैक ट्रेस प्राप्त करने का कोई तरीका नहीं है। – sakthisundar

संबंधित मुद्दे