Primary/Kotlin

VSCode에서 Kotlin 컴파일 환경 구축하기

해스끼 2022. 2. 25. 21:30

VSCode에서는 유난히 JVM 언어를 사용하기가 어렵다. 물론 내가 JVM의 구조를 정확히 몰라서겠지만, 항상 컴파일 문제가 내 발목을 잡았다.

 

그러나, 어제 드디어 C++와 완전히 같은 Kotlin 컴파일 환경을 구축했다. 이제 파일별로 컴파일하고 실행할 수 있다! 나와 같은 문제를 겪은 분들을 위해 나의 해결법을 공유한다.

 

주의: 이 글은 윈도우 환경을 기준으로 작성하였으며, 단어(환경 변수 등)를 일일이 설명하지 않습니다. 


1. kotlinc 설치

``kotlinc``는 코틀린 파일을 JVM, JS 등 적절한 타겟으로 컴파일하는 컴파일러이다. 아래 링크를 통해 최신 버전을 다운로드하자. 2022년 2월 25일 기준으로 최신 버전은 ``1.6.10``이다.

 

Kotlin command-line compiler | Kotlin

 

kotlinlang.org

다운로드한 압축 파일을 원하는 경로에 압축 해제하고, 해제된 파일 안의 ``bin`` 폴더를 PATH 환경변수에 추가하자. 

2. VSCode 컴파일 & 실행 작업 구성

VSCode에서 Ctrl+Shift+P를 누르고, Tasks: Configure task를 입력하고, 템플릿에서 tasks.json 파일 만들기 항목을 선택한다.

tasks.json 파일의 내용을 아래 코드로 완전히 변경한다. 다 지우고 복붙하면 된다.

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        {
            "label": "Compile Kotlin file",
            "command": "kotlinc",
            "args": [
                "${file}",
                "-include-runtime",
                "-d",
                "${workspaceFolder}\\compile\\${fileBasenameNoExtension}.jar",
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "label": "Execute Kotlin file",
            "command": "java",
            "args": [
                "-jar",
                "${workspaceFolder}\\compile\\${fileBasenameNoExtension}.jar",
            ],
            "group": {
                "kind": "test",
                "isDefault": true
            }
        }
    ]
}

 

이게 무슨 작업인데요?

먼저 코드를 컴파일하는 Compile Kotlin file 작업을 보자. 

 

사실 코틀린 파일을 컴파일하는 커맨드는 매우 간단하다.

kotlinc file.kt

여기에 컴파일될 파일의 경로, 런타임 설정 등을 추가하면 다음의 커맨드를 완성할 수 있다.

kotlinc file.kt -include-runtime -d compile\file.jar

이 커맨드는 ``file.kt`` 파일을 ``compile`` 폴더의 ``file.jar`` 파일로 컴파일한다. ``-include-runtime``의 역할이 궁금하다면, 이 옵션을 빼고 컴파일해보면 된다. 무시무시한 class 파일이 나올 것이다. 이 파일이 무엇을 의미하는지는 삽질을 많이 해 본 사람이라면 알 것이다.

 

이제 컴파일된 파일을 실행하는 Execute Kotlin file 작업을 보자. 위에서 JAR 파일을 만들었으므로, 생성된 JAR 파일을 실행하기만 하면 된다.

java -jar compile\file.jar

이해를 돕기 위해 해당 커맨드로 생성되는 디렉토리 구조를 첨부한다. 

단축키

Ctrl+Alt+C로 파일을 컴파일하고, Ctrl+Alt+V로 컴파일된 파일을 실행할 수 있다. 기억하기도 참 쉽다.

 

이제 C++처럼 파일 하나하나를 컴파일하고 실행할 수 있다. IntelliJ로 삽질하지 말고 편안하게 문제 풀자!