教程:创建您的第一个 Kotlin 应用程序
在本教程中,您将学习如何:
创建一个 Kotlin 项目.
使用基本编码辅助功能编写代码。
从 IntelliJ IDEA 运行您的代码。
构建并打包应用程序。
运行打包的应用程序.
您可以选择使用四个受支持的构建工具之一来构建您的应用程序。
创建一个新项目
在 IntelliJ IDEA 中,项目帮助您将开发应用程序所需的一切组织成一个单元。
在欢迎屏幕上,点击 新建项目。 或者,您也可以在主菜单上,进入 。
从左侧列表中选择 Kotlin。
请为您的新项目命名,并在必要时更改其位置。
请选择 GradleIntelliJMaven 构建系统。
请选择 GroovyKotlin 语言用于构建脚本。
从 JDK 列表中选择您想在项目中使用的 JDK。
如果 JDK 已安装在您的计算机上,但未在 IDE 中定义,请选择 添加 JDK 并指定 JDK 主目录的路径。
如果您的计算机上没有必要的 JDK,请选择 下载JDK。
启用 添加示例代码 选项以创建包含示例
Hello World!应用程序的文件。



启用 使用紧凑项目结构 选项以创建具有简化文件夹结构的项目。
点击 创建。
编写代码
源代码是您项目的核心部分。 在源代码中,您需要定义您的应用程序要做什么。 真实项目可能非常庞大,包含数十万行代码。 在本教程中,我们将从一个简单的三行程序开始,该程序会询问用户的名称并向他们致意。
在左侧的 项目 工具窗口中,展开以您的项目命名的节点并打开 /src/main/kotlin/Main.kt /src/Main.kt 文件。




文件仅包含
main()函数和打印语句。 此函数是程序的入口点。请用以下代码片段替换
Hello World!示例:fun main(args: Array<String>) { println("What is your name?") }既然程序会要求用户输入,为他们提供一种输入方式。 此外,程序需要将输入存储在某处。
将文本光标移动到下一行并输入
val name = rl。 IntelliJ IDEA 将建议将rl转换为readln()。 请按 Enter 以接受建议。
将文本光标移至下一行,键入
sout,然后按 Enter。
将文本光标置于
println语句的括号内,然后键入"Hello, $"。 按 Ctrl+Space 调用代码补全,并从列表中选择name变量。
最终代码应如下所示:
现在我们有一个能从控制台读取用户名的可用代码,将其存储在一个只读变量中,并使用存储的值输出问候语。
从 IntelliJ IDEA 运行代码
让我们验证一下我们的程序是否按预期工作。
IntelliJ IDEA 允许您直接从编辑器运行应用程序。 您不需要担心技术方面的问题,因为 IntelliJ IDEA 会在后台自动完成所有必要的准备工作。
点击中间的 运行 图标并选择 运行 'MainKt' 或按 Ctrl+Shift+F10。

当程序启动时,会打开 运行 工具窗口,您可以在其中查看输出并与程序交互。

打包为 JAR
至此,您已经知道如何编写代码并从 IntelliJ IDEA 运行它,这在开发过程中是很方便的。 但是,这并不是用户应该运行应用程序的方式。 为了使用户能够在他们的计算机上运行,我们将构建并打包该应用程序为 jar 文件。
构建该应用程序包括以下步骤:
编译源代码——在此步骤中,您将刚写的代码翻译成JVM字节码。 编译后的源文件具有 .class 扩展名。
为了使应用程序正常运行,我们需要提供其所依赖的库。 对于此项目,唯一需要的库是 Kotlin 运行时,但仍需包括在内。 否则,用户每次运行程序时都必须自己提供,这不是很方便。
编译过的源代码和依赖项都最终存储在生成的 .jar 文件中。 构建过程的结果如 .jar 文件称为 构件。
打开
build.gradle.ktsbuild.gradle脚本。

在构建脚本中,添加以下任务定义:
tasks.jar.configure { manifest { attributes(mapOf("Main-Class" to "org.example.MainKt")) } configurations["compileClasspath"].forEach { file: File -> from(zipTree(file.absoluteFile)) } duplicatesStrategy = DuplicatesStrategy.INCLUDE }tasks.jar { manifest { attributes 'Main-Class': 'org.example.MainKt' } from { configurations.runtimeClasspath.collect { file -> file.isDirectory() ? file : zipTree(file) } } }清单部分指定了程序的入口点。 当您将"Main-Class"设置为"org.example.MainKt"时,您是在告诉 JAR 文件"org.example.MainKt"是入口点,表明MainKt类位于org.example包中。 这是使 JAR 文件可执行所必需的。其余代码告诉构建工具递归扫描项目中的依赖项并将其包含在构建中。
当定义被添加到构建文件时,请按 Ctrl+Shift+O 或点击
在 Gradle 工具窗口中导入这些更改。
在右侧边栏中,打开 Gradle 并运行
jar任务()。 如果侧边栏不存在,请转到主菜单中的 并切换 工具窗口栏 菜单选项。
生成的 JAR 出现在 build/libs 目录中。

在主菜单中,前往 Ctrl+Alt+Shift+S 并打开 工件 选项卡。
点击 添加
,然后 JAR ,然后 从依赖关系模块。

在 主类 字段中,点击 浏览 按钮,并选择 Main.kt 作为主类。

请指定绝对路径
/src/main/resources作为清单目录,例如:/Users/jetbrains/IdeaProjects/greeting/src/main/resources。点击 OK 在 从模块创建 JAR 对话框。


点击 OK 在 项目结构 对话框。
在主菜单中,前往 ,然后点击 构建。
生成的 JAR 出现在 出 目录中。


运行 JAR
从 IntelliJ IDEA 运行
在 项目 工具窗口中,右键点击 .jar 文件并选择 运行。
这是从 IntelliJ IDEA 运行 .jar 文件的快捷方式。
从 CLI 运行
打开终端,然后从包含文件夹运行:
java -jar greeting.jarjava -jar greeting.jarjava -jar greeting-1.0-SNAPSHOT.jar这是应用程序用户运行它的方式。