2013-11-29 11 views
6

क्या जावाफैक्स को हेडलेस मोड में चलाने के लिए संभव है (जावा 7 में)? इसका उपयोग सर्वर पर छवियां उत्पन्न करने के लिए किया जा रहा है लेकिन एक्स-सर्वर के लिए पूछ रहा है। क्या JavaFx में java.awt.headless की तरह कुछ मौजूद है? (मैं Xvfb का उपयोग नहीं कर सकता)हेडलेस मोड में जावाएफएक्स

उत्तर

0

मैक ओएस में छवियों को कैप्चर करते समय मुझे एक तरह की समस्या आई। श्रेयस डेव द्वारा Headless environment error in java.awt.Robot class with MAC OS

+0

यह केवल स्विंग और एडब्ल्यूटी के लिए है, जावाएफएक्स – ldmtwo

+0

नहीं, मैंने इसे अपने आप से आजमाया, और यह 100% काम कर रहा है। शायद आपका मामला कुछ अलग है। साझा संदर्भ लिंक पढ़ें। –

1

जवाब अब मेरे लिए काम नहीं किया:

मैं

static { 

     System.setProperty("java.awt.headless", "false"); 
} 

का उपयोग कर के संदर्भ के लिए देखें करके इस समस्या को हल कर लिया है। हालांकि मैं नहीं जानता कि क्यों, यहाँ है मैं क्या किया:

public static void main(String[] args) { 
    // to avoid 
    // [JRSAppKitAWT markAppIsDaemon]: Process manager already initialized: can't fully enable headless mode. 
    System.setProperty("javafx.macosx.embedded", "true"); 
    java.awt.Toolkit.getDefaultToolkit(); 
    // end 
    launch(args); 
} 

यह भी यहाँ बताया गया: JavaFX screencapture headless exception on OSX

2

यहाँ है कि कैसे मैं Ubuntu पर सर्वर साइड छवि geneartion के लिए इस समस्या का समाधान जेटी अनुप्रयोग सर्वर के साथ लिनक्स पर्यावरण। यह xvfb का उपयोग करता है लेकिन केवल एक "पुस्तकालय" के रूप में - सर्वर पर किसी भी अतिरिक्त विशेष कार्यों के बिना:

apt-get install xvfb 

// then on application server start: 

export DISPLAY=":99" 

start-stop-daemon --start --background --user jetty --exec "/usr/bin/sudo" -- -u jetty /usr/bin/Xvfb :99 -screen 0 1024x768x24 

आप this SO question में मेरे सर्वर साइड छवि पीढ़ी समाधान के विवरण देख सकते हैं।

-1

यदि आपके पास जावाएफएक्स एप्लिकेशन का स्रोत कोड है तो आप टेस्टएफएक्स को एप्लिकेशन को हेडलेस मोड में चलाने के लिए, इसे नियंत्रित करने और स्क्रीनशॉट बनाने के लिए भी उपयोग करने का प्रयास कर सकते हैं। आप निम्नलिखित JVM पैरामीटर से शुरू कर दिया है नेतृत्वहीन मोड में अपने TestFX आवेदन को चलाने के लिए (Monocle सक्षम करने के लिए):

-Dtestfx.robot=glass -Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw 

इसके अलावा आप पहली बार मोनोकल स्थापित करने की आवश्यकता हो सकती है। अधिक जानकारी के लिए Headless testing with JavaFx and TestFx देखें।

+0

यह काम नहीं करता है। –

+0

अच्छा, यह मेरे हेडलेस लिनक्स सर्वर पर काम करता है। लेकिन मैं मानता हूं कि स्थापित करने के लिए यह छोटा नहीं है। और मैंने इसे केवल टेस्टएफएक्स के साथ संयोजन में करने की कोशिश की। तो यह सामान्य जावाएफएक्स अनुप्रयोगों के साथ काम नहीं कर सकता है। क्या आपने मोनोकल सही ढंग से स्थापित किया था? –

+0

मैं इसे मोनोकल के साथ काम करने में कामयाब रहा। –

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