2014-03-27 10 views
0

내가 맥 OS에서 자바 FX를 사용하여 응용 프로그램을 실행하기 위해 노력하고있어하지만 난이 오류를 얻을 :자바 FX 오류

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: getScaleFactor 
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:281) 
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:124) 
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:163) 
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) 
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) 
at java.lang.Thread.run(Thread.java:744) 
Caused by: java.lang.NoSuchMethodError: getScaleFactor 
at com.sun.glass.ui.mac.MacApplication._initIDs(Native Method) 
at com.sun.glass.ui.mac.MacApplication.<clinit>(MacApplication.java:34) 
at com.sun.glass.ui.mac.MacPlatformFactory.createApplication(MacPlatformFactory.java:33) 
at com.sun.glass.ui.Application.Run(Application.java:103) 
at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:271) 
... 5 more 

내가 함께 일식을 위해 지방 항아리 플러그인을 사용하여 하나 개의 항아리에서 응용 프로그램을 패키지 및 jfxrt.jar이 없으면 문제가 여전히 존재합니다.

+0

어떤 Java 버전을 실행합니까? – user432

+0

버전 1.7.0_51-b13 –

+0

내 첫 번째 추측은 JavaFX가 해당 버전과 함께 제공되어야하므로 원인을 생각할 수없는 stacktrace에서 나온 것보다 오래된 Java 버전이었을 것입니다. – user432

답변

1

application in one jar using fat jar plugin

그렇게하지 마십시오. 해당 플러그인을 사용하여 JavaFX 응용 프로그램을 패키지화하려면 플러그인 작성자와 기능 요청을 기록하여 JavaFX 지원을 플러그인에 추가하십시오. 예를 들어, 자바 FX 인식하고 올바르게 자바 FX의 응용 프로그램을 패키지합니다

를 사용하여 포장 방법 :

Java 8의 일부 클래스로드 규칙이 Java 8에서 좀 더 편하게 바뀌면서 onejar가 Java 8에서 즉시 사용할 수있는 기회가 있습니다. 시도해 볼 수 있을지도 모릅니다. 공장.

I package the application . . . with . . . jfxrt.jar

앱과 함께 전체 JRE를 패키징하지 않는 한 권장하지 않습니다. 이 작업을 수행하지 않은 이유는 다음에 대한 답변에 설명되어 있습니다. Maven project with JavaFX (with jar file in `lib`) (Maven을 사용하고 있지는 않지만 추론은 비슷합니다.)