知道你的主类的名称
目前(Kotlin 自 M14 起,包括最多 1.0 beta),要运行 Kotlin 类,您实际上正在运行一个特殊的类,该类是在文件级别创建的,用于保存您的main()
以及其他顶级函数(在类或接口之外)。所以如果你的代码是:
// file App.kt
package com.my.stuff
public fun main(args: Array<String>) {
...
}
然后您可以通过运行以下命令来执行该程序com.my.stuff.AppKt
班级。该名称源自您的文件名Kt
已附加(已附加以前版本KT
但从后来的测试版和 1.0 开始Kt
)。您可以通过添加以下内容来更改文件中此类的名称以文件为目标的注释 https://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets:
@file:JvmName("MyApp")
或者你也可以把你的main()
进入一个带有伴生对象的类并使其static
使用JvmStatic
注解。因此,您的班级名称就是您选择的班级名称:
// file App.kt
package com.my.stuff
public class MyApp {
companion object {
@JvmStatic public fun main(args: Array<String>) {
...
}
}
}
现在对于这些方法中的任何一个,您只需运行该类com.my.stuff.MyApp
我还需要哪些其他 JAR 文件?
您需要应用程序 JAR 和任何依赖项。对于 Maven/Gradle 之外的 Kotlin 特定 JAR,您需要一个 Kotlin 发行版,其中包含:
-
kotlin-runtime.jar
(结合运行时和 stdlib)
-
kotlin-reflect.jar
仅当使用 Kotlin 反射时
-
kotlin-test.jar
用于使用 Kotlin 断言类的单元测试
当前 Maven/Gradle 中还有一个单独的kotlin-stdlib.jar
从 Intellij 运行
如果在 Intellij 中(如果它是你的 IDE),你可以右键单击main()
函数并选择运行,它将为您创建一个运行时配置并显示将使用的完全限定类名。如果您不确定生成的类的名称,您可以随时使用它。
从 Gradle 运行
您还可以使用Gradle 应用程序插件 https://docs.gradle.org/current/userguide/application_plugin.html从 Gradle 运行进程,或者创建一个可运行的系统,其中包含 JAR 的 zip/tgz 及其所有依赖项以及启动脚本。使用上面的示例类,您可以将其添加到您的build.gradle
:
apply plugin: 'application'
mainClassName = 'com.my.stuff.AppKt'
// optional: add one string per argument you want as the default JVM args
applicationDefaultJvmArgs = ["-Xms512m", "-Xmx1g"]
然后从命令行使用:
// 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
作为主类):
java -cp $KOTLIN_LIB/kotlin-runtime.jar -jar MyApp.jar
使用 Kotlin 命令行工具运行
如果您通过以下方式安装 Kotlin 工具Homebrew http://brew.sh/或其他包管理器。 (在 Mac OS X 上brew update ; brew install kotlin
)然后运行就很简单了:
kotlin -cp MyApp.jar com.my.stuff.AppKt
此命令将运行时添加到提供的类路径中,然后运行该类。您可能需要添加其他 Kotlin 库,如上面“从 Java 运行”部分中所述。
使用 Kotlin 编译器创建可运行的 JAR
这并不常见,因为大多数人使用其他构建工具,但 Kotlin 编译器可以创建一个可运行的 Jar 来为您解决这个问题(请参阅http://kotlinlang.org/docs/tutorials/command-line.html http://kotlinlang.org/docs/tutorials/command-line.html)当它将运行时和您的代码捆绑在一起时。尽管在使用 Maven 和 Gradle 等工具或 IDE 构建时这种情况并不常见。然后使用普通的Java运行:
java -jar MyApp.jar