2013-11-29 32 views
6

JavaFx'i başsız modda çalıştırabilir miyim (Java 7'de)? Sunucuda görüntü oluşturmak için kullanılıyor, ancak bir X-Server istiyor. JavaFx'te java.awt.headless gibi bir şey var mı? (Xvfb kullanamıyorum)Başsız modda JavaFx

cevap

0

Bu, Mac OS'de görüntüleri yakalarken karşılaştığım bir sorundur. Shreyas Dave tarafından Headless environment error in java.awt.Robot class with MAC OS

+0

Bu yalnızca Swing ve AWT için değil, JavaFX – ldmtwo

+0

için denedim ve bunu kendi başıma denedim ve% 100 çalışıyor. Belki senin durumun farklı bir şey. Paylaşılan referans bağlantısını okuyun. –

1

Cevap artık beni tatmin etmedi:

Ben referans için bakınız

static { 

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

kullanarak bu sorunu çözdük. Burada neden bilmiyorum rağmen ne yaptım:

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); 
} 

burada da işaret edilen bu: JavaFX screencapture headless exception on OSX İşte

2

olduğunu ben Ubuntu sunucu tarafı görüntü geneartion için bu sorunu nasıl çözdüğünü jetty uygulama sunucusu ile linux ortamı. Bu xvfb kullanır ama sadece "kitaplık" olarak - sunucuda herhangi bir ek özel eylemler olmadan:

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 

Sen this SO question benim sunucu tarafı görüntü oluşturma çözümün ayrıntılarını görebilirsiniz.

-1

JavaFX uygulamasının kaynak koduna sahipseniz, bunu test etmek ve ekran görüntüsü oluşturmak için uygulamayı başsız bir modda çalıştırmak üzere TestFX'i kullanmayı da deneyebilirsiniz. Aşağıdaki JVM parametrelerle başlamak zorunda başsız modda TestFX uygulamayı çalıştırmak için (Monocle etkinleştirmek için):

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

Üstelik ilk Monocle yüklemeniz gerekebilir. Daha fazla bilgi için bkz. Headless testing with JavaFx and TestFx.

+0

Bu işe yaramıyor. –

+0

Eh, o benim başsız Linux sunucusunda çalışıyor. Ama itiraf etmenin önemsiz olmadığını itiraf ediyorum. Ve sadece TestFX ile birlikte denedim. Bu yüzden normal JavaFX uygulamaları ile çalışmayabilir. Monocle'ı doğru şekilde kurdunuz mu? –

+0

Monocle ile çalışmayı başardım. –