簡體   English   中英

使用 IntelliJ IDEA 創建 Kotlin jar 時出現“No main manifest attribute”

[英]"No main manifest attribute" when creating Kotlin jar using IntelliJ IDEA

從我的 Kotlin 代碼創建 jar 並運行它時,它顯示“沒有主要清單屬性”。 查看 manifest.mf 時,它包含以下內容:

Manifest-Version: 1.0

查看源文件中的文件時,它包含以下內容:

Manifest-Version: 1.0
Main-Class: MyMainClass

手動復制源清單到jar時,運行完美。

我的神器設置截圖

我在使用 Gradle 和 Kotlin 時遇到了這個錯誤。 我必須在我的build.gradle.kts添加一個顯式清單屬性:

tasks.withType<Jar> {
    manifest {
        attributes["Main-Class"] = "com.example.MainKt"
    }
}

gradle 文檔中,如果遇到java.lang.NoClassDefFoundError錯誤,最好創建一個 fatJar 任務來封裝所有運行時依賴項

如果任何依賴的 jars 有一個MANIFEST.MF文件,它會覆蓋你定義Main-Class自定義文件。

為了解決這個問題,您應該執行以下操作:

有關更多詳細信息,請參閱相關問題

您也可以使用 Gradle 或 Maven 來生成胖 jar。

1.在構建腳本中添加如下任務定義

tasks.jar {
manifest {
    attributes["Main-Class"] = "MainKt"
}
configurations["compileClasspath"].forEach { file: File ->
    from(zipTree(file.absoluteFile))
}
}
  1. 然后再次從右側邊欄中執行 jar 任務(Tasks | build | jar)。

對於 Spring 引導應用程序:

build.gradle.kts 中對我有用的 (gradle kotlin)

  1. 添加 spring 靴子插件 &。 應用依賴管理
plugins {
    id("org.springframework.boot") version "2.6.7"
}
apply(plugin = "io.spring.dependency-management")
  1. 設置你的主 class
springBoot {
    mainClass.set("com.example.Application")
}

通過閱讀此處找到的 spring-boot 文檔找到了這一切

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM