在OpenJDK 8上启动JavaFX应用程序时发生ClassNotFoundException
我试图在OpenJDK 8上运行JavaFX应用程序(最初是用OracleJDK 8开发的) 据介绍,Azul Zulu JDK和Amazon Corretto JDK确实包含JavaFX/OpenJFX支持 但是,在启动应用程序时,我会遇到以下异常(Zulu 8.40.0.25和Corretto 8.222.10.3中都是相同的;操作系统是Windows 7 64位):在OpenJDK 8上启动JavaFX应用程序时发生ClassNotFoundException,java,javafx,Java,Javafx,我试图在OpenJDK 8上运行JavaFX应用程序(最初是用OracleJDK 8开发的) 据介绍,Azul Zulu JDK和Amazon Corretto JDK确实包含JavaFX/OpenJFX支持 但是,在启动应用程序时,我会遇到以下异常(Zulu 8.40.0.25和Corretto 8.222.10.3中都是相同的;操作系统是Windows 7 64位): java.lang.ClassNotFoundException:com.sun.deploy.uitoolkit.impl
java.lang.ClassNotFoundException:com.sun.deploy.uitoolkit.impl.fx.HostServicesFactory
位于java.net.URLClassLoader.findClass(URLClassLoader.java:382)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:348)
在com.sun.javafx.application.HostServicesDelegate.lambda$getInstance$0(HostServicesDelegate.java:52)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.sun.javafx.application.HostServicesDelegate.getInstance(HostServicesDelegate.java:45)
位于javafx.application.HostServices。(HostServices.java:52)
位于javafx.application.application.getHostServices(application.java:334)
位于de.saxsys.mvvmfx.cdi.mvvmfxcdiaapplication。(mvvmfxcdiaapplication.java:57)
在(我的应用程序).gui.AppRunner.(AppRunner.java:22)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
在com.sun.javafx.application.launchempl.lambda$launchApplication1$7(launchempl.java:819)
位于com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
位于com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
位于com.sun.glass.ui.invokelateDispatcher$Future.run(invokelateDispatcher.java:95)
在com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177)
运行(Thread.java:748)
之后,应用程序似乎正常运行,所以我不确定是否有问题
表明该问题与getHostServices()
方法有关,已修复
我还发现,这表明这不是一个错误,异常不应该在控制台上可见
有人能确认可以安全地忽略该异常吗?
有人知道所提到的修复程序是否已经或将最终包含在Zulu和/或Corretto版本中吗
java.lang.ClassNotFoundException: com.sun.deploy.uitoolkit.impl.fx.HostServicesFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.javafx.application.HostServicesDelegate.lambda$getInstance$0(HostServicesDelegate.java:52)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.HostServicesDelegate.getInstance(HostServicesDelegate.java:45)
at javafx.application.HostServices.<init>(HostServices.java:52)
at javafx.application.Application.getHostServices(Application.java:334)
at de.saxsys.mvvmfx.cdi.MvvmfxCdiApplication.<init>(MvvmfxCdiApplication.java:57)
at (my application).gui.AppRunner.<init>(AppRunner.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:819)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177)
at java.lang.Thread.run(Thread.java:748)