Kotlin 教程(环境搭建)

news2024/12/25 12:45:15

Kotlin IntelliJ IDEA环境搭建

IntelliJ IDEA 免费的社区版下载地址:Download IntelliJ IDEA – The Leading Java and Kotlin IDE

下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6+ 一起使用。

在右侧的下拉菜单中勾选 Kotlin (Java) 复选框。

接下来我们取一个项目名:HelloWorld

项目创建完后,文件结构如下,跟 Java 的还是很类似的。

接下来 我们点击 src 文件夹,创建一个 Kotlin 文件,它可以任意命名,这里我们创建 app.kt

接下来,我们在 app.kt 文件中写点代码。IntelliJ IDEA 为我们提供了一个快速完成此操作的模板,只需键入 main 然后按 Tab 即可。

现在我们添加一行代码来打印出"Hello, World!"吧。

接下来我们可以鼠标点击编辑器左上角 kotlin图标并选择 Run 'AppKt'来运行代码:

运行成功后就可以在窗口 Run 中看到结果。

这样我们第一个 Kotlin 代码就运行起来了。

Kotlin Eclipse 环境搭建

Eclipse 通过 Marketplace 安装 Kotlin 插件,打开 Eclipse,选择 Help -> Eclipse Marketplace… 菜单,搜索 Kotlin 插件:

然后重启 Eclipse 选择 Window -> Open Perspective -> Other...,如果看到了 Kotlin 选项表明安装成功。

创建新项目

选择 File -> New -> Kotlin Project 来创建 Kotlin 项目:

创建成功后,项目结构如下:

接下来 我们点击 src 文件夹,创建一个 Kotlin 文件,不用写 ".kt" ,默认自动添加,它可以任意命名,这里我们创建 hello

接下来,我们在 hello.kt 文件中写点代码。Eclipse 为我们提供了一个快速完成此操作的模板,只需键入 main 然后按 Enter 即可。

运行应用

接下来我们在 hello.kt 的编辑框内右击鼠标选择 Run As -> Kotlin Application 即可运行:

运行成功后就可以在窗口 Console 中看到结果。

这样我们第一个 Kotlin 代码就运行起来了。

 

Kotlin 使用命令行编译

Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。

你可以选择一个最新的稳定版下载。

下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。


SDKMAN!

在 OS X、Linux、Cygwin、FreeBSD 和 Solaris 系统上也可以使用更简单的安装方法,命令如下:

$ curl -s https://get.sdkman.io | bash

$ sdk install kotlin

Homebrew

在 OS X 下,你可以使用 Homebrew 安装:

$ brew update
$ brew install kotlin

MacPorts

如果你是 MacPorts 用户,可以使用以下命令安装:

$ sudo port install kotlin

创建和运行第一个程序

创建一个名为 hello.kt 文件,代码如下:

hello.kt

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

使用 Kotlin 编译器编译应用:

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

  • -d: 用来设置编译输出的名称,可以是 class 或 .jar 文件,也可以是目录。
  • -include-runtime : 让 .jar 文件包含 Kotlin 运行库,从而可以直接运行。

如果你想看所有的可用选项,运行:

$ kotlinc -help

运行应用

$ java -jar hello.jar
Hello, World!

编译成库

若需要将生成的 jar 包供其他 Kotlin 程序使用,可无需包含 Kotlin 的运行库:

$ kotlinc hello.kt -d hello.jar

由于这样生成的 .jar 文件不包含 Kotlin 运行库,所以你应该确保当它被使用时,运行时在你的 classpath 上。

你也可以使用 kotlin 命令来运行 Kotlin 编译器生成的 .jar 文件

$ kotlin -classpath hello.jar HelloKt

HelloKt 为编译器为 hello.kt 文件生成的默认类名。


运行 REPL(交互式解释器)

我们可以运行如下命令得到一个可交互的 shell,然后输入任何有效的 Kotlin 代码,并立即看到结果


使用命令行执行脚本

Kotlin 也可以作为一个脚本语言使用,文件后缀名为 .kts 。

例如我们创建一个名为 list_folders.kts,代码如下:

import java.io.File

val folders = File(args[0]).listFiles { file -> file.isDirectory() }
folders?.forEach { folder -> println(folder) }

执行时通过 -script 选项设置相应的脚本文件。

$ kotlinc -script list_folders.kts <path_to_folder>

$ kotlinc -script list_folders.kts

Kotlin Android 环境搭建

安装 Kotlin 插件

Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。

打开 Settings ( Mac 为 Preferences) 面板,在右侧找到 Plugins 选项 (快捷键 Ctrl+, Mac 下为 command+),搜索框输入 "Kotlin" 查找,点击 Search in repositories(仓库中搜索),然后安装即可,安装完成之后需要重启 Android Studio。


创建新工程

选择 Start a new Android Studio project 或者 File | New project,大多数选项均有默认值 ,只需要按几次"回车"键即可。

Android Studio 3.0 在当前对话框中提供启用 Kotlin 支持的选项,勾选后可以跳过 "配置 Kotlin 工程(Configuring Kotlin in the project)"的步骤。

选择 Android 版本:

选择需要创建的 Activity 样式:

命名该 Activity:

在 Android Studio 3.0 中,可以选择使用 Kotlin 创建 activity,因此也不需要"将Java 代码转换为 Kotlin(Converting Java code to Kotlin)"这一步骤。

早期版本中则会先使用 Java 创建 activity,然后再使用自动转换工具 进行转换。


将 Java 代码转换为 Kotlin

重新打开Android Studio,新建一个Android项目吧,添加一个默认的MainActivity

打开 MainActivity.java 文件,通过菜单栏依次调出 Code | Convert Java File to Kotlin File:

转换完成后即可看到使用 Kotlin 编写的 activity。

工程中配置 Kotlin

在开始编辑此文件时,Android Studio 会提示当前工程还未配置 Kotlin,根据提示完成操作即可,或者可以在菜单栏中选择 Tools

选择配置时有如下对话框,选择已安装的最新版本即可。

Kotlin 配置完成后,应用程序的 build.gradle 文件会更新。 你能看到新增了 apply plugin: 'kotlin-android' 及其依赖。

同步工程,在提示框中点击"立即同步(Sync Now)"或者使用 Sync Project with Gradle Files命令。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据】详解 Flink 中的 WaterMark

详解 Flink 中的 WaterMark 1.基础概念1.1 流处理1.2 乱序1.3 窗口及其生命周期1.4 Keyed vs Non-Keyed1.5 Flink 中的时间 2.Watermark2.1 案例一2.2 案例二2.3 如何设置最大乱序时间2.4 延迟数据重定向 3.在 DDL 中的定义3.1 事件时间3.2 处理时间 1.基础概念 1.1 流处理 流…

1.【Vue3】前端开发引入、Vue 简介

1. 前端开发引入 1.1 前端开发前置知识 通过之前的学习&#xff0c;已经通过 SpringBoot 和一些三方技术完成了大事件项目的后端开发。接下来开始学习大事件项目的前端开发&#xff0c;前端部分借助两个框架实现&#xff1a; Vue3&#xff08;一个 JS 框架&#xff09;基于 …

Vue-Router: 如何使用路由元信息来管理路由?

Vue-Router是Vue.js官方的路由管理器&#xff0c;它可以帮助我们快速构建单页应用程序&#xff08;SPA&#xff09;。除了常见的路由功能外&#xff0c;Vue-Router还支持使用路由元信息来管理和控制路由。路由元信息是可以附加到路由上的自定义属性&#xff0c;它可以帮助我们实…

LandrayOA内存调优 / JAVA内存调优 / Tomcat web.xml 超时时间调优实战

目录 一、背景说明 二、LandrayOA / Tomcat 内存调优 2.1 \win64\tomcat\conf\web.xml 文件调优 2.2 \win64\tomcat\bin\catalina64.bat 文件调优 一、背景说明 随着系统的使用时间越来越长&#xff0c;数据量越多&#xff0c;发现系统的有些功能越来越慢&…

在腾讯云上部署幻兽帕鲁,实现游戏自由!

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。引用自&#xf…

第17章_反射机制(理解Class类并获取Class实例,类的加载与ClassLoader的理解,反射的基本应用,读取注解信息,体会反射的动态性)

文章目录 第17章_反射机制本章专题与脉络1. 反射(Reflection)的概念1.1 反射的出现背景1.2 反射概述1.3 Java反射机制研究及应用1.4 反射相关的主要API1.5 反射的优缺点 2. 理解Class类并获取Class实例2.1 理解Class2.1.1 理论上2.1.2 内存结构上 2.2 获取Class类的实例(四种方…

Linux系统优化要义

这里不敢说 linux优化奥义&#xff0c;主要是本文比较浅显&#xff0c;适合普通开发相关人员去读 linux作为服务器系统的王者&#xff0c;以稳定性著称&#xff0c;但对于不同的“应用场景”&#xff0c;相关配置还需调整&#xff0c;才能保证业务稳定性。以下是相关总结 IO优…

函数入门.

函数入门 1. 初识函数2. 函数的参数2.1 参数2.2 默认参数2.3 动态参数 3. 函数返回值总结作业 1. 初识函数 函数到底是个什么东西&#xff1f; 函数&#xff0c;可以当做是一大堆功能代码的集合。 def 函数名():函数内编写代码......函数名()例如&#xff1a; # 定义名字叫in…

Linux 驱动开发基础知识—— 具体单板的 LED 驱动程序(五)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

THM学习笔记——john

John the Ripper是目前最好的哈希破解工具之一。 John基本语法&#xff1a; john [options] [path to file] john&#xff1a;调用John the Ripper程序。 [path to file]&#xff1a;包含你要尝试破解的哈希的文件&#xff0c;如果它们在同一个目录中&#xff0c;你就不需要命名…

S275 4G网络IO模块:智能酒店的理想选择

行业背景 随着物联网技术的发展&#xff0c;酒店服务也变得更加“智能”——自动灯光效果、室内温湿度控制、各种人性化操作等贴心服务&#xff0c;带给顾客真正的宾至如归之感。 同时&#xff0c;智慧酒店更为管理者提供了高效的管理手段&#xff0c;将酒店物耗、能耗、人员…

CSS探索浏览器兼容性

学习如何探索浏览器的兼容性对于编写跨浏览器兼容的CSS代码非常重要。以下是一些学习CSS兼容性的方法&#xff1a; MDN文档&#xff1a;Mozilla开发者网络&#xff08;MDN&#xff09;提供了广泛而详细的CSS文档&#xff0c;其中包含有关CSS属性、选择器和功能的信息。在MDN上…

解决 PDF.js v2.3.200 (build: 4ae3f9fc) 信息:PDFDocument: Stream must have data

文章标题 问题描述&#xff1a;思考分析&#xff1a;解决方案&#xff1a;参考资料 问题描述&#xff1a; 项目中使用PDF.js去预览已上传的附件文件时&#xff0c;加载PDF文件的时候报了以下的错误 错误信息如下 PDF.js v2.3.200 (build: 4ae3f9fc) 信息&#xff1a;PDFDocu…

基于QC-LDPC编码的循环移位网络的FPGA实现

一、桶式移位寄存器(barrel shifter) 八位桶式移位寄存器的VHDL实现如下&#xff0c;由于每一层结构相似&#xff0c;于是采用生成语句for_generate实现&#xff0c;使用该代码实现的RTL级分析和理论的结构一致&#xff0c;仿真结果也符合预期。 entity barrel_shift isGENE…

降低文件增长和失真的零系数JPEG图像可逆信息隐藏

一、研究概述和意义 随着多媒体技术和网络的迅猛发展&#xff0c;数字媒体的应用越来越广泛。在网络上传输的数字 媒体如音频、文本、视频和图像的内容及数据安全问题也随之而来。伴随着计算机技术发展与普及&#xff0c;数字媒体的机密性、完整性经常受到非法活动的威胁&…

OJ_完数和盈数

题干 c实现 #include<stdio.h> #include<vector> using namespace std;int IsWanOrYing(int a) {int sum 1;for (int i 2; i < a; i) {if (a % i 0) {sum i;}}if (sum a) {return 1;}else if (sum > a) {return 2;}return -1; }int main() {vector<…

DjangoURL调度器(二)

一、默认值与额外参数 1.1、默认值 1.1.1、urls.py from django.urls import pathfrom . import viewsurlpatterns [# http://127.0.0.1:8000/polls/blog/ 等同于 # http://127.0.0.1:8000/polls/blog/1/path(blog/, views.page),# http://127.0.0.1:8000/polls/blo…

【鸿蒙】大模型对话应用(二):对话界面设计与实现

Demo介绍 本demo对接阿里云和百度的大模型API&#xff0c;实现一个简单的对话应用。 DecEco Studio版本&#xff1a;DevEco Studio 3.1.1 Release HarmonyOS SDK版本&#xff1a;API9 关键点&#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局、层叠布局 对话页…

Java笔记 --- 一、双列集合

一、双列集合 双列集合的特点 Map 创建Map对象时&#xff0c;要规定键和值的泛型 Map是一个接口&#xff0c;不能直接创建&#xff0c;要创建实例化对象 Map的遍历 通过键找值 先获取到键的对象&#xff0c;并放到一个单列集合中&#xff08;map.KeySet()方法&#xff09;…

如何预防服务器IP被劫持,危害有什么?

服务器IP被劫持是一种严重的网络安全问题&#xff0c;攻击者通过篡改服务器的IP地址&#xff0c;将网络流量重定向到恶意服务器或网站&#xff0c;导致用户无法正常访问目标服务器&#xff0c;并可能面临数据泄露、恶意软件感染等安全风险。了解服务器IP被劫持的危害和预防措施…