我想在我的组合桌面应用程序中使用java.net.http包。当我在IntelliJ中运行应用程序时,一切都很好。但是,当我使用.deb构建一个packageDeb文件并通过apt安装它时,当我单击“开始”按钮时,应用程序会因为java.lang.ClassNotFoundException: java.net.http.HttpClient
而崩溃。
下面是示例代码:
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
import java.net.http.HttpClient
@Composable
@Preview
fun App() {
MaterialTheme {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Button(onClick = {
println("getting httpClient")
val httpClient: HttpClient = HttpClient.newHttpClient()
}) {
Text(text = "Start")
}
}
}
}
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
App()
}
}
build.gradle.kts:
import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.6.10"
id("org.jetbrains.compose") version "1.0.1"
}
group = "some.group"
version = "1.0"
repositories {
google()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}
dependencies {
implementation(compose.desktop.currentOs)
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "16"
}
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "untitled"
packageVersion = "1.0.0"
}
}
}
有什么办法解决这个问题吗?java.net.http应该在Java16中提供。
提前谢谢。
发布于 2022-09-10 03:48:18
你可以这样试一试
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "untitled"
packageVersion = "1.0.0"
modules("java.net.http")
}
}
}
https://stackoverflow.com/questions/70764268
复制相似问题