拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Kotlin备忘录—命令行编译

接着上回说首先大家得先知道一个事就是Kotlin分两种文件一种是.kt一种是.kts这俩文件的区别如下表文件类型编译产物生成的类名.kt.jar / .classXxxxxKT.kts没有没有也就是说.kt相当于一个.cpp那种需要编译的而.kts相当于.py直接就可以执行的脚本⚠️生成的类名那里比如文件名是abc.kt那么生成的类名就是AbcKT也就是首字母和KT要大写不要搞错然后就可以搞代码编译了先创建一个.kt文件比如test.tk# test.tkfunmain(){println(Hello World)}进入命令行开始编译有两种命令都贴出来# 生成包含 Kotlin runtime的可执行 JAR可独立运行kotlinc test.kt -include-runtime-dtest.jar# 只编译不包含runtime体积小但运行时要保证 classpath 上有 Kotlin runtimekotlinc test.kt-dtest.jar编译成功后运行也有两个⚠️注意和上面那俩是一一对应的# 含runtimejava-jarhello.jar# 不含runtimePs HelloKt 是编译器对 hello.kt 生成的默认类名kotlin-classpathhello.jar HelloKt那。。。如果文件名太长怎么办总不能AjdhdhhshusjajjsjsjhsjsjzjhsuisjsjwiiwiansjsjKT吧输入就得累s∴你可以在文件指定一个类// a.ktfile:JvmName(MyApp)funmain(){println(hello)}编译还是正常的只不过执行时就是这样了kotlin--classpatha.jar MyApp 仅局限于不包含Runtime的编译那么如果是.kts文件呢首先先新建.kts文件输入以下内容# hi.ktsfunmain(){println(Hi there)}回到命令行输入以下两个命令任何一个都可以直接执行kotlin hi.kts kotlinc-scripthi.kts现在你已经会基础编译了那有没有更多的有的有的包有的kotlinc 编译参数大全参数说明-version显示编译器版本号-help / -h显示编译所有选项-nowarn不输出任何警告-Werror编译时有警告就当错误-verbose编译时输出详细日志-script执行Kotlin脚本.kts文件-script-templates 类指定脚本定义模板类-kotlin-home “路径”自定义Kotlin编译器的home用于发现runtime库-language-version “版本”按指定的Kotlin版本提供源码兼容性-api-version 版本只允许使用指定版本捆绑库的声明-progressive使用渐进式编译模式-P plugin: id :name值向编译器插件传参-opt-in 注解启动需要opt-in的API文件从文件读取编译参数与源文件路径-classpath / -cp 路径类文件搜索路径多路径用 :Linux/macOS或 ; Windows分隔-d 路径输出目录或 JAR 文件路径-include-runtime把 Kotlin 运行时打进 JAR使其可独立运行-jdk-home 路径使用自定义 JDK 目录默认取 JAVA_HOME -jvm-target 版本目标 JVM 字节码版本1.8/9/10/…/26默认 1.8-Xjdk-release版本指定目标 JDK 版本并限制 API会自动设 -jvm-target-java-parameters为 Java 1.8 方法参数反射生成元数据-module-name 名称设置生成的 .kotlin_module 文件名-no-jdk不自动把 Java 运行时加入 classpath-no-stdlib不自动加入 kotlin-stdlib.jar 与 kotlin-reflect.jar-no-reflect不自动加入 kotlin-reflect.jar-expression / -e 代码把给定字符串当作 Kotlin 脚本求值编译实例# 编译单文件为可执行 JARkotlinc hello.kt -include-runtime-dhello.jar# 编译到目录生成 class 文件kotlinc hello.kt-dout/# 编译多文件kotlinc File1.kt File2.kt-dapp.jar# 指定依赖kotlinc-cplib/mylib.jar hello.kt-dhello.jar# 指定 JVM 目标版本kotlinc -jvm-target17hello.kt-dhello.jar# 抑制警告 / 警告当错误kotlinc-nowarnhello.kt-dhello.jar kotlinc-Werrorhello.kt-dhello.jar# 从参数文件读取选项kotlinc options/compiler.options hello.kt特别的compiler.options文件示例-include-runtime -d hello.jar hello.kt附加用法文件 classes.listhello.kt那么编译命令就可以简化为kotlinc compiler.options classes.list嗯嗯命令行编译就到这里啦
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门