Kotlin编程实战:创建优雅、富于表现力和高性能的JVM与Android应用程序
上QQ阅读APP看书,第一时间看更新

1.4.1 在命令行上运行

要从命令行编译和运行代码,首先执行以下命令:

这个命令将把文件Hello.kt中的代码编译为Java字节码,并将其放到Hello.jar文件中。

创建jar文件后,使用java工具来运行程序,如下所示:

由于文件Hello.kt只包含主函数而不包含类,Kotlin编译器kotlinc-jvm会自动创建一个以文件名命名的类,不带.kt扩展名,但加了一个Kt后缀。

下面是运行代码后的输出:

你也可以使用jar选项来运行代码,而不是指定classpath命令行选项。这是因为,在找到main()函数之后,Kotlin编译器决定将Main-Class manifest(清单)属性添加到jar文件中。继续并在Hello.jar文件上尝试以下命令:

此命令的输出将与使用classpath选项而不是jar选项时产生的输出相同。

在本例中,我们没有使用Kotlin标准库中的任何东西。但是,任何重要的程序都将使用Kotlin标准库中的类和函数,在这种情况下,上述使用java工具的执行将会失败,产生java.lang.NoClassDefFoundError异常。为了避免这种情况,可以将kotlin-stdlib.jar文件包含到classpath中,如下所示:

类Unix系统上的环境变量$KOTLIN_PATH,或者Windows上的%KOTLIN_PATH%,指向安装Kotlin的目录。在Windows上,使用;而不是:来分隔classpath中的路径。

除了使用java工具,你也可以使用kotlin工具。在这种情况下,你不必引用kotlin-stdlib.jar。让我们使用kotlin来运行代码。这里有一些步骤,但是你可以跳过第一步,它与之前的编译命令相同:

无论使用java工具还是kotlin工具运行代码,其输出都是相同的。

如果你主要使用Java编程,并且在项目中混合使用Kotlin,那么请使用java工具。否则,使用kotlin工具,因为它需要更少的配置选项。