Я получаю сообщение об ошибке «Нет атрибута основного манифеста» при компиляции и запуске простой программы в Kotlin - PullRequest
0 голосов
/ 22 мая 2019

Вот программа

data class Resultado (val resultado: Int, val tesoro: Boolean)

fun main() {
        val busca =  fun(intento: Int): Resultado
        {
                val cosas = listOf( 3, 33, 333, 42, 1, 1, 111 )
                if ( intento == 4  ) {
                        return Resultado( 42, true )
                } else {
                        return Resultado( cosas[intento], false )
                }
        }

        val (valor1, premio1) = busca( 2 )
        println( "2 devuelve " + valor1 + " y tiene premio " + premio1  )
        val (valor2, premio2) = busca( 4 )
        println( "4 devuelve " + valor2 + " y tiene premio " + premio2  )

}

Он правильно компилирует либо напрямую, либо с

kotlinc code/tesoro.kt -include-runtime -d tesoro.jar

Оставление всех видов файлов в каталоге:

ls *.class *.jar
Resultado.class  tesoro.jar  TesoroKt.class  TesoroKt$main$busca$1.class

Однако он не запускается

java -jar tesoro.jar 
no hay ningún atributo de manifiesto principal en tesoro.jar

Что в значительной степени означает, как сказано выше, "Нет основного атрибута манифеста". Это

java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Котлин версия 1.1.3-2

В программе что-то не хватает?

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Обязательно используйте последнюю стабильную версию.С kotlinc 1.3.31 он работает правильно, также с fun main() на месте.

0 голосов
/ 22 мая 2019

В определении функции main есть ошибка, которая вызывает эту ошибку в версии 1.1.3.Это должно быть:

fun main(args: Array<String>) 

Это даст ошибку LTA, если это не так, поэтому вам нужно включить ее, даже если вы не будете использовать аргументы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...