Gradle - "Kein Hauptmanifestattribut" im Beispielprojekt
Posted: 11 Jul 2025, 14:37
Ich mache gerade meine ersten Schritte in Java und Gradle. Wenn ich Gradle Init betreibe und die Anwendung auswähle, generiert Gradle ein einfaches Hello World -Beispiel. Ich kann es erstellen, aber wenn ich versuche, Java -Jar App/Build/libs/app.jar auszuführen, erhalte ich das Fehler kein Hauptmanifestattribut in App/Build/libs/app.jar . Die Manifestdatei im JAR ist tatsächlich leer (mit Ausnahme der Zeile Manifest-Version: 1.0 < /em>). Ich habe keine Änderungen vorgenommen. < /P>
Ich kann das Projekt mit gradlew run ausführen. Ich gehe davon aus, dass es die TAR- und ZIP -Dateien verwendet, die zusätzlich zur JAR -Datei generiert werden. Diese enthalten ein Run -Skript, das Java startet und die Hauptklasse in der Befehlszeile angeben. Aber ich hoffe, es gibt eine Möglichkeit, eine reguläre ausführbare JAR -Datei zu erhalten.
Code: Select all
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details on building Java & JVM projects, please refer to https://docs.gradle.org/8.14.3/userguide/building_java_projects.html in the Gradle documentation.
*/
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
application
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use JUnit Jupiter for testing.
testImplementation(libs.junit.jupiter)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
// This dependency is used by the application.
implementation(libs.guava)
}
// Apply a specific Java toolchain to ease working on different environments.
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
application {
// Define the main class for the application.
mainClass = "org.example.App"
}
tasks.named("test") {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}