美文网首页
使用Kotlin命令行工具学习Kotlin

使用Kotlin命令行工具学习Kotlin

作者: stefanJi | 来源:发表于2018-01-11 23:13 被阅读0次

    1. 安装Kotlin compiler

    1. 手动操作

    Github Releases下载最新版。
    解压得到:

    ├── bin
    │   ├── kotlin
    │   ├── kotlin.bat
    │   ├── kotlinc
    │   ├── kotlinc.bat
    │   ├── kotlinc-js
    │   ├── kotlinc-js.bat
    │   ├── kotlinc-jvm
    │   ├── kotlinc-jvm.bat
    │   ├── kotlin-dce-js
    │   └── kotlin-dce-js.bat
    

    包含kotlin编译器的一些命令。可以将这些添加到系统bin目录,用来全局使用。

    kotlin compiler的运行还依赖一些jar包,在lib目录下,查看kotlinc命令脚本可以发现:

    findKotlinHome() {
        local source="${BASH_SOURCE[0]}"
        while [ -h "$source" ] ; do
            local linked="$(readlink "$source")"
            local dir="$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)"
            source="$dir/$(basename "$linked")"
        done
        (cd -P "$(dirname "$source")/.." && pwd)
    }
    
    KOTLIN_HOME="$(findKotlinHome)"
    
    if [ -n "$KOTLIN_RUNNER" ];
    then
        java_args=("${java_args[@]}" "-Dkotlin.home=${KOTLIN_HOME}")
        kotlin_app=("${KOTLIN_HOME}/lib/kotlin-runner.jar" "org.jetbrains.kotlin.runner.Main")
    else
        [ -n "$KOTLIN_COMPILER" ] || KOTLIN_COMPILER=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
        java_args=("${java_args[@]}" "-noverify")
    
        kotlin_app=("${KOTLIN_HOME}/lib/kotlin-preloader.jar" "org.jetbrains.kotlin.preloading.Preloader" "-cp" "${KOTLIN_HOME}/lib/kotlin-compiler.jar" $KOTLIN_COMPILER)
    fi
    "${JAVACMD:=java}" $JAVA_OPTS "${java_args[@]}" -cp "${kotlin_app[@]}" "${kotlin_args[@]}"
    

    脚本会判断是否存在KOTLIN_RUNNER环境变量,如果存在就会建立一个kotlin_app变量,最后调用java命令执行。创建kotlin_app的过程中会写入一些jar作为lib使用。而 KOTLIN_HOME 是通过findKotlinHome方法放回的当前shell执行的绝对路径,所以手动安装需要将这些lib拷贝到和bin目录同级的地方。

    例如:
    bin目录下命令拷贝到系统/usr/local/bin/里,那么lib里的 jar 就要拷到 /usr/local/lib/里,然后就可以在系统任何使用 kotlin 的命令了。

    最后安装好是这样:

    /usr/local/bin
    $ ls | grep "kotlin*"
    kotlin
    kotlinc
    kotlinc-js
    kotlinc-jvm
    kotlin-dce-js
    
    /usr/local/lib
    $ ls | grep "kotlin*"
    ...
    kotlin-ant.jar
    kotlin-compiler.jar
    kotlin-daemon-client.jar
    kotlin-jslib.jar
    kotlin-jslib-sources.jar
    kotlin-preloader.jar
    kotlin-reflect.jar
    kotlin-reflect-sources.jar
    kotlin-runner.jar
    kotlin-runtime.jar
    kotlin-runtime-sources.jar
    ...
    

    2. 自动安装

    • 使用 SDKMan
    • 使用 Homebrew
    • 使用 MacPorts

    2. 第一个Application

    1. 创建 hello.kt 源码文件
    fun main(args: Array<String>){
        println("Hello Word")
    }
    
    1. 使用 Kotlin 的编译器(kotlinc)编译源文件

    kotlinc -h 可以查看各参数帮助

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

    -include-runtime 参数:Include Kotlin runtime in to resulting .jar

    1. 运行Applicatioin
    $ java -jar hello.jar
    

    编译一个库

    如果正在开发要由其他Kotlin应用程序使用的库,则可以在不包括Kotlin运行时的情况下生成.jar文件。

    $ kotlinc hello.kt -d hello.jar
    

    由于以这种方式编译的二进制文件依赖于Kotlin运行时,因此每当使用编译的库时,应确保后者存在于类路径中。

    也还可以使用kotlin脚本来运行Kotlin编译器生成的二进制文件:

    $ kotlin -classpath hello.jar HelloKt
    

    HelloKt是Kotlin编译器为名为hello.kt的文件生成的主类名

    使用交互式编程环境

    可以运行不带参数的编译器来创建交互式shell。 然后输入任何有效的Kotlin代码并查看结果。

    $ kotlinc-jvm
    Welcome to Kotlin version 1.2.10 (JRE 1.8.0_131-b11)
    Type :help for help, :quit for quit
    >>> :help
    Available commands:
    :help                   show this help
    :quit                   exit the interpreter
    :dump bytecode          dump classes to terminal
    :load <file>            load script from specified file
    >>> println("Hello KT")
    Hello KT
    >>>
    

    使用命令行运行Kotlin脚本

    Kotlin也可以用作脚本语言。 脚本是后缀为(.kts)的Kotlin源文件。

    // hello.kts
    println("print args")
    for(arg in args){
        println(arg)
    }
    

    使用 -script 参数指定执行脚本文件

    $ kotlinc -script hello.kts 1 2 3 4 5
    print args
    1
    2
    3
    4
    5
    

    相关文章

      网友评论

          本文标题:使用Kotlin命令行工具学习Kotlin

          本文链接:https://www.haomeiwen.com/subject/rdhxoxtx.html