【Kotlin】Kotlin环境搭建
1 前言
Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotlin 的普及和发展。
Kotlin 旨在解决 Java 语言在编码效率和代码质量方面存在的问题,并且与 Java 语言完全兼容。Kotlin 通过简化语法、提供更强大的功能以及减少样板代码的编写,使得开发者能够更高效地编写清晰、简洁而又安全的代码。
Kotlin 是一门功能丰富、简洁高效、空值安全、兼容 Java 的编程语言,适用于 Android、Web 后端开发等多种场景,具有以下特性和优势。
- 兼容 Java:Kotlin 可以与 Java 无缝交互,允许开发者在现有的项目中逐步采用 Kotlin,而不需要重写整个项目。这使得 Kotlin 成为 Android 应用开发的理想选择。
- 简洁高效:Kotlin 的语法简洁并具有更好的可读性,减少了样板代码的编写。相比 Java,Kotlin 可以使用更少的代码来实现同样的功能,从而提高开发效率。
- 空值安全:Kotlin 对空值进行了更好的处理。在 Kotlin 中,变量默认是非空的,如果使用了可能为空值的变量,需要显式声明类型为可空。这有助于减少空指针异常的发生。
- 支持函数式编程:Kotlin 支持函数式编程的特性,如高阶函数、lambda 表达式和函数式编程的集合操作等。这些特性可以让开发者编写更简洁、可维护的代码,并提高代码的表达能力。
- 支持扩展函数:Kotlin 允许开发者为某个类添加新的方法,而不需要修改该类的源代码。这种扩展函数的特性可以为开发者提供更灵活的方式来扩展现有的类库。
- 支持协程:Kotlin 引入了协程(coroutine)机制,使得异步操作更易于管理和编写。通过使用协程,开发者可以使用顺序的方式编写并发代码,并避免了回调地狱的问题。编写更简洁、可维护的代码,并提高代码的表达能力。
kotlin 官方资料如下。
- opensource:https://www.jetbrains.com/opensource/kotlin
- kotlin-compiler:https://github.com/JetBrains/kotlin/releases
2 搭建 Kotlin 环境
2.1 安装 Kotlin 编译器
1)配置环境变量
下载 kotlin-compiler:kotlin-compiler-1.9.22.zip,放在路径中无空格的英文目录下(笔者放在【D:\Android\Kotlin】目录下),解压后,在【系统 → 系统信息 → 高级系统设置 → 环境变量 → 系统变量 → Path】中配置环境变量,将以下路径添加到 Path 中。
D:\Android\Kotlin\kotlin-compiler-1.9.22\kotlinc\bin
配置完环境变量后,在 cmd 窗口输入 kotlin -version、kotlinc -version,如果正确打印 Kotlin 版本号,说明环境变量配置成功,如下。

2)编译 Kotlin 代码
使用记事本编写以下代码,并保存为 Test.kt 文件。
Test.kt
fun main() {println("Hello world!")
}
使用以下命令编译 Kotlin 代码。
kotlinc Test.kt -include-runtime -d Test.jar
使用以下命令运行程序。
java -jar Test.jar

2.2 Android Studio 中搭建 Kotlin 环境
1)Android Studio 中创建 Kotlin 项目
在 Android Studio 中依次选择【File → New → New Project → Empty Views Activity】创建一个 Android 项目,在 Language 中选择 Kotlin,如下。

2)Java 项目中配置 Kotlin 环境
如果一个 Android 项目中使用的是 Java 语言,即 3)中选择的 Language 是 Java,后期新增的需求希望使用 Kotlin 语言实现,可以按以下步骤配置 Kotlin 环境。
修改项目根目录下的 build.gradle 文件如下。
build.gradle
plugins {id 'com.android.application' version '8.1.1' apply falseid 'org.jetbrains.kotlin.android' version '1.9.22' apply false
}
修改模块下的 build.gradle 文件如下。
app/build.gradle
plugins {id 'com.android.application'id 'org.jetbrains.kotlin.android'
}android {...kotlinOptions {jvmTarget = '1.8'}
}
3)运行 Kotlin 代码
按以下步骤创建 kt 文件。

Test.kt
package com.zhyan8.kotlinStudyfun main() {println("Hello world!")
}
点击 main 方法前面的三角形就可以运行程序。

相关文章:
【Kotlin】Kotlin环境搭建
1 前言 Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotl…...
langgraph学习--创建基本的agent执行器
本文介绍如何使用langgraph创建一个基本的Agent执行器,主要包括下面几个步骤: 1、定义工具 2、创建langchain Agent(由LLM、tools、prompt三部分组成) 3、定义图形状态 传统的LangChain代理的状态有几个属性: (1&#…...
Mybatis中的sql-xml延迟加载机制
Mybatis中的sql-xml延迟加载机制 hi,我是阿昌,今天记录一下关于Mybatis中的sql-xml延迟加载机制 一、前言 首先mybatis技术本身就不多介绍,说延迟加载机制之前,那要先知道2个概念: 主查询对象关联对象 假设咱们现…...
【Linux系统学习】1.初识Linux
初识Linux 操作系统概述 初识Linux 虚拟机介绍 VMware WorkStation安装 1.操作系统概述 了解操作系统的作用 了解常见的操作系统 1.1 硬件和软件 计算机由哪两个主要部分组成? 硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的…...
政安晨:政安晨:机器学习快速入门(三){pandas与scikit-learn} {模型验证及欠拟合与过拟合}
这一篇中,咱们使用Pandas与Scikit-liarn工具进行一下模型验证,之后再顺势了解一些过拟合与欠拟合,这是您逐渐深入机器学习的开始! 模型验证 评估您的模型性能,以便测试和比较其他选择。 在上一篇中,您已经…...
分享65个节日PPT,总有一款适合您
分享65个节日PPT,总有一款适合您 65个节日PPT下载链接:https://pan.baidu.com/s/1hc1M5gfYK8eDxQVsK8O9xQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知…...
架构学习(二):原生scrapy如何接入scrapy-redis,初步入局分布式
原生scrapy如何接入scrapy-redis,实现初步入局分布式 前言scrpy-redis分布式碎语 实现流程扩展结束 前言 scrpy-redis分布式 下图是scrpy-redis官方提供的架构图,按我理解,与原生scrapy的差异主要是把名单队列服务器化,也是存储…...
第1节、电路连接【51单片机+L298N步进电机系列】
↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍如何搭建一个51单片机L298N步进电机控制电路,所用材料均为常见的模块,简单高效的方式搭建起硬件环境。 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模…...
API接口文档怎么写?
API接口文档模板 本文档更新时间:2022-12-07 本文档更新说明:提供了接口文档模板,后续如果有接口文档编写相关工作,可以参考该模板。 接口名称: XX帐号基础信息批量获取接口 【接口名称,见名知意】 接口…...
Qt 范例阅读: QStateMachine状态机框架 和 SCXML 引擎简单记录(方便后续有需求能想到这两个东西)
一、QStateMachine 简单应用: 实现按钮的文本切换 QStateMachine machine; //定义状态机(头文件定义)QState *off new QState(); //添加off 状态off->assignProperty(ui->pushButton_2, "text", "Off"); //绑定该…...
Linux实验记录:使用DHCP动态管理主机地址
前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 动态主机配置协议(DHCP&…...
Qt应用软件【协议篇】MQTT协议介绍
文章目录 MQTT简介QT中MQTT的源码什么是 MQTT?MQTT 的工作原理MQTT 的工作流程MQTT 的应用场景智能家居工业物联网(IIoT)车联网环境监测医疗健康物流与供应链智能能源公共安全基于传输层TCP协议上的MQTT应用层协议...
Linux ncftp命令教程:如何使用ncftp来管理FTP服务器(附实例详解和注意事项)
Linux ncftp命令介绍 ncftp是一种增强的FTP客户端程序,它可以让你在本地和远程服务器之间传输文件,并管理远程服务器上的文件和目录。ncftp具有许多特色,包括显示传输速率,下载进度,自动续传,标记书签&…...
2、ChatGPT 在数据科学中的应用
ChatGPT 在数据科学中的应用 ChatGPT 可以成为数据科学家的绝佳工具。以下是我所了解到的关于它擅长的地方和不那么擅长的地方。 我从使用 ChatGPT 中学到了一个教训。它在数据科学中非常有帮助,但你必须仔细检查它输出的所有内容。它非常适合某些任务,并且可以非常快速准确…...
从小白到入门webrtc音视频通话
0. 写在前面 先会骑车,再研究为什么这么骑,才是我认为学习技术的思路,底部付了demo例子,根据例子上面的介绍即可运行。 1. 音视频通话要用到的技术简介 websocket 介绍:1. 服务器可以向浏览器推送信息;2…...
Qt之漂亮的地球
这个画的是一个东西围绕着中心的地球不停的旋转,可以放在界面的中部,增加美感。 展示 界面展示 设计过程 标题在之前的博客有写过,这里不再重复 下面是关于地球旋转的相关 1.资源文件添加 先将相关的资源文件添加,三个图片 2…...
FPGA解码MIPI视频:Xilinx Artix7-35T低端FPGA,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持
目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案本方案在Xilinx Artix7-100T上解码MIPI视频的应用本方案在Xilinx Kintex7上解码MIPI视频的应用本方案在Xilinx Zynq7000上解码MIPI视频的应用本方案在Xilinx Zynq UltraScale上解码MIPI视频的应用纯VHDL代码解…...
使用docker部署Kafka(MAC Apple M2 Pro)
前置准备 下载适用于Apple M2 Pro的Zookeeper和Kafka Docker镜像 docker pull zookeeper:3.6 docker pull cppla/kafka-docker:arm 下载成功后确认镜像无误 docker images 部署Zookeeper 执行部署命令后查看容器是否启动 docker run -d --name zookeeper -p 2181:2181 -…...
车位检测,YOLOV8,OPENCV调用
车位检测YOLOV8NANO,opencv调用 车位检测,YOLOV8NANO,训练得到PT模型,然后转换成ONNX,OPENCV的DNN调用,支持C,PYTHON,ANDROID...
FCIS 2023:洞悉网络安全新态势,引领创新防护未来
随着网络技术的飞速发展,网络安全问题日益凸显,成为全球共同关注的焦点。在这样的背景下,FCIS 2023网络安全创新大会应运而生,旨在汇聚业界精英,共同探讨网络安全领域的最新动态、创新技术和解决方案。 本文将从大会的…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
