我正在开发一个使用 Kotlin compose 桌面版和 Ktorm 的项目。 直接在 IntelliJ 中运行它可以工作,但尝试运行可分发文件(通过 gradle 任务创建它之后)会出现此错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class DatabaseKt
...
Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/SQLException
at DatabaseKt.<clinit>(database.kt:6)
at Data$transactions$2.invoke(Data.kt:17)
at Data$transactions$2.invoke(Data.kt:15)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at Data.getTransactions(Data.kt:15)
at ComposableSingletons$MainKt$lambda-1$1$1.invokeSuspend(Main.kt:37)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
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)
... 21 more
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
失败的database.tk仅包含标准Ktorm db连接。
val database = Database.connect(
url = dbUrl,
user = dbUser,
password = dbPw,
)
我尝试创建一个 SQLException 变量,结果相同
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
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)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
... 43 more
Failed to launch JVM
你找到解决办法了吗?我也有同样的问题(