From 207f55d263520560f6f9279a2269ad4a67614eb2 Mon Sep 17 00:00:00 2001 From: Kyle Bolen Date: Sun, 2 Aug 2026 18:04:27 +0000 Subject: [PATCH] Add comprehensive JVM module list for packaged distribution Include all modules commonly needed by logback, coroutines, Swing, Kotlin serialization, and networking to prevent NoClassDefFoundError when running as a packaged .app bundle. --- build.gradle.kts | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0205768..92bbecb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,11 +46,31 @@ compose.desktop { copyright = "© 2026 Kyle Bolen" modules( - "java.naming", // javax.naming — needed by logback - "java.management", // JMX — needed by logback - "java.instrument", // needed by logback - "jdk.unsupported", // needed by various reflection-based libs - "java.security.jgss", // sometimes needed by networking + // Networking and naming — needed by logback JNDI + "java.naming", + // JMX — needed by logback JMX appender + "java.management", + // Instrumentation — needed by logback/class loading + "java.instrument", + // Reflection support for Unsafe — needed by coroutines, serialization + "jdk.unsupported", + // XML processing — needed by logback XML config parser + "java.xml", + // Logging — java.util.logging bridge + "java.logging", + // Security + "java.security.jgss", + "java.security.sasl", + // Desktop/AWT (for Swing integration) + "java.desktop", + // Compiler API — sometimes needed by Kotlin reflection + "java.compiler", + // SQL — needed by some Kotlin stdlib internals + "java.sql", + // Network — needed by HTTP calls (Gitea API, pymobiledevice3) + "java.net.http", + // Preferences — used by some desktop apps + "java.prefs", ) macOS {