JavaFX桌面应用赢得';t在特定机器中启动(在其他机器中工作)

JavaFX桌面应用赢得';t在特定机器中启动(在其他机器中工作),javafx,jfoenix,Javafx,Jfoenix,我有一个使用Swing的java桌面应用程序,我使用SceneBuilder在JavaFX中重写了它 Swing应用程序在所有用户机器(35台机器)上都能正常工作。在JavaFX中重写应用程序后,在一台特定的机器上,应用程序将不会启动,并给出以下错误消息 我想不出这个问题。如果有人能提供任何帮助,我将不胜感激。 多谢各位 Exception in Application start method java.lang.reflect.InvocationTargetException

我有一个使用Swing的java桌面应用程序,我使用SceneBuilder在JavaFX中重写了它

Swing应用程序在所有用户机器(35台机器)上都能正常工作。在JavaFX中重写应用程序后,在一台特定的机器上,应用程序将不会启动,并给出以下错误消息

我想不出这个问题。如果有人能提供任何帮助,我将不胜感激。 多谢各位

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/css/converters/PaintConverter
        at com.jfoenix.controls.JFXPasswordField$StyleableProperties.<clinit>(JFXPasswordField.java:205)
        at com.jfoenix.controls.JFXPasswordField.<init>(JFXPasswordField.java:156)
        at idehmis.controller.LoginController.<init>(LoginController.java:51)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.base/java.lang.Class.newInstance(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader$Element.processStartElement(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)
        at idehmis.IDEHMIS.start(IDEHMIS.java:30)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.javafx.css.converters.PaintConverter
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
应用程序启动方法中出现异常 java.lang.reflect.InvocationTargetException 位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(未知源) 位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(未知源) 位于java.base/java.lang.reflect.Method.invoke(未知源) 位于javafx.graphics/com.sun.javafx.application.LaunchImpl.launchApplicationWithArgs(未知源) 位于javafx.graphics/com.sun.javafx.application.LaunchImpl.launchApplication(未知源) 位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(未知源) 位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(未知源) 位于java.base/java.lang.reflect.Method.invoke(未知源) 位于java.base/sun.launcher.launchelper$FXHelper.main(未知源) 原因:java.lang.RuntimeException:应用程序启动方法中的异常 位于javafx.graphics/com.sun.javafx.application.LaunchImpl.launchApplication1(未知源) 位于javafx.graphics/com.sun.javafx.application.launchempl.lambda$launchApplication$2(未知源) 位于java.base/java.lang.Thread.run(未知源) 原因:java.lang.NoClassDefFoundError:com/sun/javafx/css/converters/PaintConverter 在com.jfoenix.controls.JFXPasswordField$StyleableProperties上。(JFXPasswordField.java:205) 在com.jfoenix.controls.JFXPasswordField.(JFXPasswordField.java:156) 在idehmis.controller.LoginController。(LoginController.java:51) 位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(未知源) 位于java.base/java.lang.reflect.Constructor.newInstance(未知源) 位于java.base/java.lang.Class.newInstance(未知源) 位于javafx.fxml/javafx.fxml.fxmloader$ValueElement.processAttribute(未知源) 位于javafx.fxml/javafx.fxml.fxmloader$InstanceDecrationElement.processAttribute(未知源) 位于javafx.fxml/javafx.fxml.fxmloader$Element.processStartElement(未知源) 位于javafx.fxml/javafx.fxml.fxmloader$ValueElement.processStartElement(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.processStartElement(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.loadImpl(未知源) 位于javafx.fxml/javafx.fxml.fxmloader.load(未知源) 在idehmis.idehmis.start(idehmis.java:30) 在javafx.graphics/com.sun.javafx.application.launchempl.lambda$launchApplication1$9(未知来源) 位于javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(未知来源) 位于javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(未知来源) 位于java.base/java.security.AccessController.doPrivileged(本机方法) 位于javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(未知来源) 在javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(未知源代码) 在javafx.graphics/com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法) 位于javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(未知来源) ... 还有一个 原因:java.lang.ClassNotFoundException:com.sun.javafx.css.converters.PaintConverter 位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(未知源) 位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(未知源) 位于java.base/java.lang.ClassLoader.loadClass(未知源)
看起来JVM很难在运行时找到
com.sun.javafx.css.converters.PaintConverter
,这会导致
ClassNotFoundException
异常错误,这反过来会导致JFoenix库抛出
java.lang.NoClassDefFoundError
,这意味着在类路径上找不到该类。这表明我们试图加载类定义,而类路径上不存在该类
因此,首先确保您拥有正确版本的java,即java 8,以支持JFoenix,他们确保JFoenix库位于您的类路径中。

堆栈跟踪,因为它在每个完全限定类名(例如
java.lang.ClassLoader
)前面都有一个模块名(例如,
java.base
)表示机器正在尝试使用java 9运行应用程序

CSS转换器类,如
PaintConverter
,从Java 8和更早版本中的私有API升级到Java 9中的公共API