如何在Kotlin中运行编译的类文件?

如何在Kotlin中运行编译的类文件?,kotlin,Kotlin,Jetbrains提供了,但我找不到如何运行Kotlin的编译类文件 您好,kt: fun main(args : Array<String>) { println("Hello, world!") } 如何运行Kotlin程序?我们遇到了同一个程序,并将我们的解决方案写在这里: 基本上,您只需要使用-cp和“namespace”的主类调用java。从您的问题来看,java调用将如下所示: java -cp /usr/local/kotlin/lib/kotlin-runtim

Jetbrains提供了,但我找不到如何运行Kotlin的编译类文件

您好,kt:

fun main(args : Array<String>) {
  println("Hello, world!")
}

如何运行Kotlin程序?

我们遇到了同一个程序,并将我们的解决方案写在这里:

基本上,您只需要使用-cp和“namespace”的主类调用java。从您的问题来看,java调用将如下所示:

java -cp /usr/local/kotlin/lib/kotlin-runtime.jar:dist/namespace.class namespace

更新:在更新版本的Kotlin IDE插件中,可以在编辑器弹出菜单中使用上下文运行操作

如果您在IDE中,右键单击编辑器并选择“运行命名空间”
否则,将*.namespace类作为普通Java类编译并运行。

我正在运行这样使用kotlin的jar

java -cp target/idea_test-1.0-SNAPSHOT.jar:lib/kotlin-runtime.jar testing.first seyfer
你好,塞弗 种子

知道主类的名称 当前(自M14以来的Kotlin包括高达1.0 Beta),要运行Kotlin类,您实际上是在运行一个特殊类,该类是在文件级别创建的,包含
main()
和其他顶级函数(类或接口之外)。因此,如果您的代码是:

// file App.kt
package com.my.stuff

public fun main(args: Array<String>) {
  ...
}
或者,您也可以将
main()
放入带有伴生对象的类中,并使用
JvmStatic
注释将其设置为
static
。因此,您选择的类名是:

// file App.kt
package com.my.stuff

public class MyApp {
    companion object {
        @JvmStatic public fun main(args: Array<String>) {
          ...
        }
    }
}
然后从命令行使用:

// run the program
gradle run

// debug the program
gradle run --debug-jvm

// create a distribution (distTar, distZip, installDist, ...)
gradle distTar
直接从Java命令行运行 如果您有一个可运行的JAR,并且假设
KOTLIN_LIB
指向KOTLIN运行时库文件所在的目录:

java -cp $KOTLIN_LIB/kotlin-runtime.jar:MyApp.jar com.my.stuff.AppKt
请参阅上面关于您可能需要的其他JAR文件的注释。如果您有一个可运行的JAR(清单指向
com.my.stuff.AppKt
作为主类),则会有一个轻微的变化:

使用Kotlin命令行工具运行 如果您通过或其他软件包管理器安装Kotlin tools。(在Mac OS X
brew update;brew安装kotlin
)运行起来非常简单:

kotlin -cp MyApp.jar com.my.stuff.AppKt
此命令将运行时添加到提供的类路径中,然后运行该类。您可能需要添加额外的Kotlin库,如上面“从Java运行”一节所述

使用Kotlin编译器创建可运行JAR 这并不常见,因为大多数人使用其他构建工具,但是Kotlin编译器可以创建一个可运行的Jar,当它将运行时和代码捆绑在一起时,可以为您解决这个问题(请参阅)。尽管这在使用Maven和Gradle等工具或IDE构建时并不常见。然后使用普通Java运行:

java -jar MyApp.jar
报告给出了一个简洁的回答:

kotlinc hello.kt -include-runtime -d hello.jar

java -jar hello.jar
koclinc
位于IntelliJ IDEA目录中 在
IntelliJ\plugins\Kotlin\kotlinc\bin下

如果您正在运行Windows,请使用
kotlinc jvm.bat

谢谢,但我无法通过上述命令运行我的类文件。发生错误“线程中的异常”main“java.lang.NoClassDefFoundError:namespace”;一个是kotlin-runtime.jar,它可能在您的系统中,以及所有编译的kotlin代码中(从您的示例来看,它类似于dist目录中的代码)。请确定,您是否尝试过我引用的博客文章中的Ant脚本?我在线程“main”java.lang.NoClassDefFoundError:namespace“中遇到错误”异常,我无法解决它。对于当前Kotlin,这已过时。您选择的答案总共有0个结果投票,并且对于当前Kotlin,这里的大多数答案都已过时。请检查答案,如果您无法更改所选答案,请标记为版主帮助,并解释您希望发生的事情。您答案的可能副本缺少有关如何运行的信息。
java -cp $KOTLIN_LIB/kotlin-runtime.jar -jar MyApp.jar
kotlin -cp MyApp.jar com.my.stuff.AppKt
java -jar MyApp.jar
kotlinc hello.kt -include-runtime -d hello.jar

java -jar hello.jar