WSL Ubuntu 安装 Kotlin 交互式 Shell

文章目录

    心血来潮,想用 Kotlin 写一个 Android 应用。但是由于对 Kotlin 语法不熟悉,需要不断写测试代码,由于不习惯在 Android Studio 下测试,所以想安装一个命令行版的 Kotlin 交互式 Shell 来使用。

    由于我在 WSL 下的 Ubuntu 18.04 开发,所以没法使用 snap 安装。

    $ sudo snap install --classic kotlin
    Interacting with snapd is not yet supported on Windows Subsystem for Linux.
    This command has been left available for documentation purposes only.
    

    而 apt install 也找不到 kotlin 的安装包。所以只能使用官方推荐的 SDKMAN 安装方案。

    安装 SDKMAN

    SDKMAN 可以用来安装 Kotlin 的命令行编译器。

    SDKMAN is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.

    安装执行:

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

    运行下面命令使 sdkman 生效,或者重新进入 shell。

    source "/home/zhongwei/.sdkman/bin/sdkman-init.sh"
    

    如果使用的是 fish shell,需要切换为 bash shell 来运行。否则会报错:

    ~/.sdkman/bin/sdkman-init.sh (line 48): 'case' builtin not inside of switch block
    case "${SDKMAN_PLATFORM}" in
    ^
    from sourcing file ~/.sdkman/bin/sdkman-init.sh
            called on standard input
    
    source: Error while reading file '/home/zhongwei/.sdkman/bin/sdkman-init.sh'
    

    使用 SDKMAN 安装 Kotlin

    sdk install kotlin
    

    不过 sdkman 的下载速度非常慢,需要耐心等待。

    ~ $ kotlinc-jvm
    Welcome to Kotlin version 1.3.60 (JRE 11.0.4+11-post-Ubuntu-1ubuntu218.04.3)
    Type :help for help, :quit for quit
    >>> println("Hello Kotlin");
    Hello Kotlin
    >>>
    

    大功告成。

    如果 sdkman 网络不佳

    可以到 github 直接下载

    https://kotlinlang.org/docs/command-line.html

    编译并执行 kotlin 文件

    $ kotlinc main.kt -include-runtime -d hello.jar
    $ ls
    META-INF  MainKt.class  hello.jar  main.kt
    $ java -jar hello.jar
    Hello, World!
    

    java: command not found

    $ kotlinc -help
    /home/zhongwei/.sdkman/candidates/kotlin/current/bin/kotlinc: line 80: java: command not found
    

    需要按照 java

    sudo apt install openjdk-11-jdk-headless
    

    参考

    Kotlin 官方文档:https://kotlinlang.org/docs/tutorials/command-line.html

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式