JVM (Java/Kotlin) 应用程序需要一点时间来启动并呈现给用户。
加载应用程序时可能有各种“技巧”来显示启动屏幕。
我显示启动画面的主要目的是显示应用程序正在启动的一些指示。 因此,例如,启动启动器 Java 进程来显示人工启动屏幕可能会达不到目的,因为它本身可能需要一些时间才能出现在屏幕上。
那么,当我的应用程序尚未出现在屏幕上时,如何利用操作系统本机启动画面?
Java 似乎支持 在应用程序启动时显示操作系统本机启动画面。
我只在 Windows 上测试过它,它按预期工作。
所以,在我的项目build.gradle(.kts)中我添加了这个:
compose.desktop {
application {
nativeDistributions {
appResourcesRootDir = rootDir.resolve("myAssets")
// ...
}
// The image path is relative to the app (Java) working directory
// which is the app installation root directory (where the .exe file resides)
jvmArgs += "-splash:app/resources/myImage.gif"
// ...
}
}
它使用放置在 /myAssets/common/ 目录中的
有关更多信息,请参阅将文件添加到打包的应用程序。
当应用程序通过其安装的 exe 或 Compose Multiplatform
run*Distributable
任务之一启动时,启动屏幕将起作用。
还要设置应用程序 fat/uber jar 的启动画面(使用 package*UberJar*
任务之一创建),
将启动图像复制到类路径(如 src/main/resources 目录)
并在构建文件中添加以下代码以更新所有 Jar 任务:
tasks.withType<org.gradle.jvm.tasks.Jar> {
manifest {
attributes["SplashScreen-Image"] = "myImage.gif"
}
}
Windows 似乎不尊重 GIF 速度和无循环设置,并且 以低帧速率播放动画。请参阅 C# 中的 Gif 动画文件的帧速率低于应有的值。