问题描述
所以我正在尝试部署 JavaFX(使用 sqlite)桌面应用程序
-
我使用的是 open-JDK-16、java SDK-16 和 sqlite.3.20.1 JDBC 驱动程序
-
我正在开发 Intellij IDEA(2020.3.2 社区版),当我运行我的代码时,它工作正常
-
如果数据库文件不存在,则将创建一个,并在其中创建一个表并填充一些数据 see my project folder。
-
使用 JPackage 部署后,安装程序已成功创建,我可以毫无问题地安装它
但是当我运行可执行文件时,它什么也没做,但是控制台窗口会在执行时显示下面的输出。
在此先感谢您,感谢任何愿意帮助我解决此问题的人
这是我从窗口控制台收到的错误
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: java/sql/Driver
at java.base/java.lang.classLoader.defineClass1(Native Method)
at java.base/java.lang.classLoader.defineClass(UnkNown Source)
at java.base/java.security.SecureClassLoader.defineClass(UnkNown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(UnkNown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClasspathOrNull(UnkNown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(UnkNown Source)
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)
at java.base/java.lang.class.forName0(Native Method)
at java.base/java.lang.class.forName(UnkNown Source)
at sample.Main.Connector(Main.java:27)
at sample.Main.start(Main.java:17)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(UnkNown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(UnkNown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(UnkNown Source)
at java.base/java.security.AccessController.doPrivileged(UnkNown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(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: java.sql.Driver
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)
... 22 more
Exception running application sample.Main
解决方法
要解决该问题,请确保您已包含所有必需的模块,一旦我添加我的问题已解决,我就缺少一个 java.sql 模块