2012-08-03 23 views
5

मेरे पास जावा एप्लिकेशन है जो जावा हेडलेस ब्राउज़र के लिए वेबरेंडरर का उपयोग करता है। WebRenderer को xserver चलाने की आवश्यकता नहीं है और मैंने सभी x11 libs और xserver घटकों को अनइंस्टॉल करके इसकी पुष्टि की है।जावा एप्लिकेशन 'जीटीके-चेतावनी ** फेंकता है **: डिस्प्ले नहीं खोल सकता:' जब xserver की आवश्यकता नहीं है

हालांकि समस्या यह है कि यह एक त्रुटि फेंकता है: Gtk-WARNING **: cannot open display: कुछ शर्तों में। शोध पर मैंने पाया कि यह आमतौर पर उस त्रुटि के साथ उस त्रुटि को फेंकता है जिसमें openJDK स्थापित है। इसके अलावा जब वर्तमान जावा संस्करण सूर्य से है लेकिन openJDK अभी भी स्थापित है। इसे ठीक करने के लिए मुझे libatk-wrapper-java और libgtk2.0-0 (जो default-jre, cedtea-netx, libatk-wrapper-java-jni, libgtk2.0-bin, और openjdk-6-jre) को भी अनइंस्टॉल करने की आवश्यकता होगी।

यह ओपनएसयूएसई (सूर्य से जावा के साथ) में भी वही त्रुटि फेंकता है। Xserver शुरू करने या घटकों के समूह को अनइंस्टॉल किए बिना इस त्रुटि को ठीक करने का कोई तरीका होगा जो किसी और चीज के लिए आवश्यक हो सकता है? किसी भी मदद की सराहना की है।

+2

के लिए गूगल आप के साथ 'जावा -Djava.awt.headless = TRUE' JVM शुरू करते हैं? –

+0

मैंने कोशिश की है लेकिन मुझे यह मिलता है: 'कोई प्रोटोकॉल निर्दिष्ट नहीं है जीटीके-चेतावनी **: डिस्प्ले नहीं खोल सकता: ' – KrispyDonuts

उत्तर

1

हां, Xvfb का उपयोग करें।

एक टर्मिनल में, आप Xvfb :1 चलाते हैं। दूसरे टर्मिनल में, आप DISPLAY=:1 ./yourapp चलाते हैं।

कुछ डिस्ट्रोज़ में xvfb-run स्क्रिप्ट है जो Xvfb लॉन्च करने का जादू और उसी ऐप पर आपका ऐप है।

http://en.wikipedia.org/wiki/Xvfb

Xvfb के लिए अधिक जानकारी

+0

हालांकि,' एक्सवीएफबी: 1' चलाना xserver शुरू होता है, कम से कम ऐसा लगता है। यह बैकअप समाधान हो सकता है, लेकिन अभी के लिए मैं देख रहा हूं कि xserver चलाने के बिना कोई रास्ता है या नहीं। – KrispyDonuts

+0

हां, लेकिन इस तरह की स्थिति में 'एक्सवीएफबी' का लक्ष्य बिल्कुल उपयोग किया जाना है। इसे किसी भी ग्राफिक्स कार्ड की आवश्यकता नहीं होगी या आपकी याददाश्त के साथ फैंसी सामान नहीं होगा। यह आपके सामान्य "xserver" से हल्का तरीका है। या तो आप ऐप को ठीक करते हैं या आप इसे बिना किसी स्क्रीन के नकली xserver देते हैं। – pzanoni

+0

हम्म मैं देखता हूं। एकमात्र चिंता यह है कि जब मैं सभी xserver पुस्तकालयों को अनइंस्टॉल करता हूं और libgtk यह ठीक काम करता है। तो उस मामले में मैं वास्तव में समझ नहीं पा रहा हूं कि यह libstk स्थापित होने पर xserver पर क्यों निर्भर करता है। – KrispyDonuts