Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

639
Vistas
"Sin atributo de manifiesto principal" al crear un contenedor de Kotlin con IntelliJ IDEA

Al crear un jar a partir de mi código Kotlin y ejecutarlo, dice "Sin atributo de manifiesto principal". Al mirar el manifest.mf, tiene este contenido:

 Manifest-Version: 1.0

Al mirar el archivo en la fuente, tiene este contenido:

 Manifest-Version: 1.0 Main-Class: MyMainClass

Al copiar manualmente el manifiesto de origen en el contenedor, funciona perfectamente.

Captura de pantalla de la configuración de mi artefacto

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Recibí este error con Gradle y Kotlin. Tuve que agregar en mi build.gradle.kts un atributo de manifiesto explícito:

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

De la documentación de gradle , es mejor crear una tarea fatJar para englobar todas las dependencias de tiempo de ejecución en caso de que encuentre errores java.lang.NoClassDefFoundError

over 4 years ago · Santiago Trujillo Denunciar

0

Si alguno de los archivos jar dependientes tiene un archivo MANIFEST.MF , anulará el archivo personalizado que define la Main-Class .

Para solucionar este problema, debe hacer lo siguiente:

  • Deshabilitar el orden alfabético
  • Cambie el orden de los elementos para que el elemento que tiene el archivo META-INF/MANIFEST.MF sea el primero en la lista
  • IntelliJ IDEA recogerá su MANIFEST.MF personalizado y lo mostrará para el artefacto jar .

Consulte el problema relacionado para obtener más detalles.

También puede usar Gradle o Maven para generar el fat jar en su lugar.

over 4 years ago · Santiago Trujillo Denunciar

0

1. Agregue la siguiente definición de tarea en el script de compilación

 tasks.jar { manifest { attributes["Main-Class"] = "MainKt" } configurations["compileClasspath"].forEach { file: File -> from(zipTree(file.absoluteFile)) } }
  1. Luego, las tareas de jar (Tareas | construir | jar) nuevamente desde la barra lateral derecha.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda