2014-01-17 5 views
1

나는 자바 FX 이미지 작전 페이지에서 언급 한 바와 같이 내 파일 시스템에 이미지를 저장하기 위해 노력하고있어 : http://docs.oracle.com/javafx/2/image_ops/jfxpub-image_ops.htm하지만 난이 예외 오류가 계속이 유래 질문 일종의 JavaFX screencapture headless exception on OSX 도움Mac에서 JavaFX를 사용하여 이미지를 파일 시스템에 저장하려면 어떻게합니까?

java[80783:707] [JRSAppKitAWT markAppIsDaemon]: Process manager already initialized: can't fully enable headless mode. 

을하지만, 난 여전히입니다 이미지 저장시 붙어 있습니다.

이미지를 저장하는 방법은 어떤 것이 있습니까?

내가 현재 그 일을하고 어떻게 :

File outFileImage = new File(imageUrl); 

Toolkit tk = java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit(); 
try { 
    ImageIO.write(SwingFXUtils.fromFXImage(image, null), ".png", outFileImage); 
} catch (Exception e) { 
    log.log(Level.WARNING, "Image not saved to disk", e); 
} 


편집

나는 문제가 해결 될 수 있는지 확인하기 위해 자바 8을 실행하는 시도했지만 내가 자바 FX FXML을 받고 유지 오류 :

javafx.fxml.LoadException: Root hasn't been set. Use method setRoot() before load. 
/Users/jonathan/Projects/Dominion/target/classes/dominion/application/controller/main_overview_tab.fxml:13 

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2613) 
at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:104) 
at javafx.fxml.FXMLLoader$RootElement.constructValue(FXMLLoader.java:1320) 
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740) 
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) 
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409) 
at dominion.application.controller.MainOverviewTab.initView(MainOverviewTab.java:64) 


내가 여기 또 다른 질문에이 자바 FX FXML 로딩 문제를 게시 한

편집 : RT-20784 Mac: Headless environment issue, MacOSX의 댓글에서 Root hasn't been set Error with Java 8 Eclipse

+0

오류 메시지에도 불구하고 이미지가 올바르게 기록 되었습니까, 아니면 메시지가 궁금하십니까? – haraldK

+0

아니요, 이미지가 디스크에 저장되지 않습니다. –

답변

2

, 당신은 당신의 질문에 붙여 넣은 경고 메시지에 관련하는 개발자 노트 :

This indeed requires fixes in JDK. We don't have plans to back port these specific changes to 7uX releases because they are somewhat risky, and we don't want to destabilize the 7uX branch. As Steve suggests, please move to 8.

AFAIK, apart from the fact that FX forces the AWT to run in the headless mode, nothing else changes or breaks because of this. So you may assume that the warning printed out to the console is the only side-effect of the missing changes. As long as you don't need to use AWT/Swing in your application, you should be safe.

그래서 아마 행동의 최고의 코스는 Java 8을 시도하고 당신은 여전히 ​​문제가 있는지 확인하는 것입니다. setRoot의에 관한 업데이트 된 질문을 바탕으로

업데이트()

당신이 FXML 오류 자바 (8) 어떤 빌드를 얻고있다? 이 Bug Report에 따르면이 특정 "루트가 설정되지 않았습니다"FXML로드 오류가 JavaFX 8b121에서 수정되었을 수 있습니다. 잠재적으로 related StackOverflow question on setRoot errors을 참조하십시오. FXML 로딩 문제는 이미지를 파일 시스템에 저장하는 원래의 질문과 관련이 없으며 일반적으로 관련이없는 질문은 새로운 질문으로 가장 좋습니다.

+0

업데이트 된 질문 –

+0

답변이 업데이트되었습니다. – jewelsea

+0

질문이 업데이트되었습니다. –

관련 문제