在Kotlin中编译和运行一个简单程序时,出现错误“无主清单属性”

时间:2019-05-22 08:54:11

标签: kotlin

这是程序

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  )

}

直接compiles正确地使用{p>

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 个答案:

答案 0 :(得分:1)

请确保使用最新的稳定版本。使用kotlinc 1.3.31,它可以正确运行,也可以使用fun main()

答案 1 :(得分:0)

函数def sal_of_seawater(l): sal_of_seawater = (-0.0222*l)+34 print("A latitude of", l, "equals a salinity value of", sal_of_seawater) sal_of_seawater(45) 的定义中存在错误,导致版本1.1.3中出现此错误。应该是:

main

如果没有,它将产生LTA错误,因此即使您不使用参数也需要将其包括在内。