2015-01-09 5 views
9

में तोड़ बिंदु पर डिबग मोड में लटका हुआ है मैं जबकि IntelliJ विचार में डीबगिंग, यह डिबग मोड में तोड़ बिंदु पर JavaFX आवेदन में श्रोताओं में लटकी हुई एक समस्या है। मैंने ढेर की जगह बढ़ाने की कोशिश की, लेकिन यह मदद नहीं है। शायद किसी को भी ऐसी समस्या थी, कृपया मुझे बताएं कि क्या करना है।आईडीई जावा fx आवेदन

उत्तर

30

एक वीएम पैरामीटर के रूप में सेट करें:

-Dsun.awt.disablegrab=true 

यह होगा गंदगी खींचें और -प्रॉप करें, और डीबगर रुकने पर आपकी स्क्रीन पर एक आर्टिफैक्ट छोड़ दें - लेकिन यह आपको डीबग करने देगा। ऐसा होता है जब भी आप JavaFX थ्रेड को अवरुद्ध करते हैं।

+0

एक ही समस्या ... यह मेरे लिए काम करता है ... धन्यवाद। – Ben

+0

धन्यवाद, मैं इस के साथ अपने बालों को खींच रहा था। –

+0

ड्रैगड्रॉप इवेंट हैंडलर 0 ब्रेकपॉइंट में ब्रेकपॉइंट के साथ काम नहीं कर रहा है –

2

यह एक सरल कारण के लिए हो सकता है: आवेदन मॉडल संवाद या एक पॉपअप या एक खुला मेनू उदाहरण के लिए, डेस्कटॉप पर एक ताला है। फिर यह एक ब्रेकपॉइंट में बंद हो जाता है। यह आईडीई को सूचित करता है। अब आईडीई आपके डेस्कटॉप पर कुछ करने की कोशिश करता है लेकिन एप्लिकेशन के पास अभी भी पूरे डेस्कटॉप पर लॉक नहीं है -> डेडलॉक।

आप Chronon जैसे उपकरण जो पूरे कार्यक्रम रिकॉर्ड करता है और आप आगे और पीछे समय पर चलते हैं उपयोग कर सकते हैं।

अंतिम विकल्प पेड़ों की कटाई या poor man's debugger (System.out) के बजाय।

[संपादित करें]

यह System.out 20 मापदंडों के जो बराबर नहीं के साथ जांच करने के लिए मुश्किल है।

यह वास्तव में बहुत आसान है:

System.out.println("check"); 
if(!a1.equals(b2)) System.out.println(a1+"!="+b1); 

तब अंतिम पंक्ति नकल। इस तरह, आप केवल आउटपुट प्राप्त करेंगे जब कुछ वास्तव में दिलचस्प है (और 1 9 बराबर पैरामीटर के लिए नहीं)। उत्पादन के लिए कुछ पैटर्न जोड़े यदि आप aY से aX (यानी दोनों हैं true) भेद नहीं कर सकते:

if(!a1.equals(b2)) System.out.println("a1:"+a1+"!="+b1); 
+0

यदि मुझे 20 पैरामीटर के साथ दो ऑब्जेक्ट के बराबर जांचना है, और यह झूठी वापसी है, लेकिन मुझे वास्तव में सच होने की उम्मीद है, तो System.out में से कौन सा 20 पैरामीटर बराबर नहीं है। इसके अलावा मेरे सहयोगियों में से कोई भी श्रोताओं में डीबग में ऐसी समस्या नहीं है, लेकिन उन्हें यह भी नहीं पता कि क्या गलत है, हम सभी के पास एक ही हार्डवेयर, ओएस और पर्यावरण है। – user3872496

+0

मुझे यहां स्पष्टीकरण पसंद है, लेकिन समाधान नहीं। मैं उबंटू पर अपना डीबगर काम करने की कोशिश कर रहा हूं, मुझे इसे काम करने की ज़रूरत है। मेरे पास इन समस्याओं को एक ही आईडीई और मेरे ओएसएक्स मशीन पर एक ही एप्लीकेशन के साथ नहीं है। मेरे विकल्प क्या हैं? – user2223059

+0

@ user2223059 आप स्वीकृत उत्तर में कमांड लाइन विकल्प का उपयोग कर सकते हैं, लॉगिंग का उपयोग कर सकते हैं, [क्रॉनोन] (http://chrononsystems.com/) या आप लिनक्स के लिए एक नया, लॉक-फ्री डेस्कटॉप बना सकते हैं। –

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