2013-11-29 1 views
6

JavaFx를 헤드리스 모드 (Java 7)에서 실행할 수 있습니까? 그것은 서버에서 이미지를 생성하는 데 사용되지만 X 서버를 요청합니다. JavaFx에서 java.awt.headless와 같은 것이 있습니까? (Xvfb를 사용할 수 없습니다)헤드리스 모드의 JavaFx

답변

0

이것은 Mac OS에서 이미지를 캡처하는 동안 발생하는 문제입니다. Shreyas 데이브에 의해 Headless environment error in java.awt.Robot class with MAC OS

+0

이것은 JavaFX가 아닌 Swing 및 AWT에만 해당합니다. – 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

는 내가 우분투 서버 측 이미지 geneartion이 문제를 해결하는 방법 Jetty 응용 프로그램 서버가있는 Linux 환경. 그것은 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

JavaFX 응용 프로그램의 소스 코드가있는 경우 TestFX를 사용하여 헤드리스 모드로 응용 프로그램을 실행하여 응용 프로그램을 제어하고 스크린 샷을 만들 수 있습니다. 다음 JVM 매개 변수와 함께 시작해야 헤드리스 (headless) 모드에서 TestFX 응용 프로그램을 실행하려면 (Monocle을 활성화) :

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

는 또한 처음 안경을 설치해야 할 수도 있습니다. 자세한 내용은 Headless testing with JavaFx and TestFx을 참조하십시오.

+0

이것은 작동하지 않습니다. –

+0

글쎄, 내 머리가 리눅스 서버에서 작동합니다. 그러나 나는 그것이 설치하는 것이 사소한 것이 아니라고 인정한다. 그리고 TestFX와 결합해서 만 시도했습니다. 따라서 일반적인 JavaFX 응용 프로그램에서는 작동하지 않을 수 있습니다. Monocle을 올바르게 설치 했습니까? –

+0

나는 단클론으로 작업 할 수 있었다. –