Kotlin에서 수업을 쓰고 Java로 불러보십시오.

5247 단어 IntelliJ자바Kotlin
작년 Kotlin에서 코드를 썼을 것입니다! 라고 문서를 봐 보지만, 기억이 없다고 생각하고 있으면, 작년 쓴 것은 Go이었다···타고 갔던 배라고 하는 것으로 Kotlin를 봐 보았습니다.

개발 환경은 IntelliJ



Kotlin 튜토리얼의 Getting Started에서 "Getting Started with IntelliJ IDEA"와 IntelliJ가 1번에 나오기 때문에 유행하고 있는 것일까? 커뮤니티 버전을 다운로드 으로 설치합니다.



Kotlin 파일 생성 및 실행



이전 보았을 때보다 어두운 것만으로 멋지게 느껴지는 IntelliJ.

새롭게 프로젝트를 만들고 Kotlin 파일을 추가하고 실행해 볼 때까지는 Getting Started with IntelliJ IDEA대로 바삭바삭할 수 있다.
fun main() {
    println("Hello Kotlin!")
}

IntelliJ 설치시 어쩐지, 그럴까라고 생각했습니다만 Kotlin의 파일 확장자 「.kt」이군요. (초보자)

.kt 파일을 편집하고 있는 코드의 왼쪽에 Run 버튼이 있으므로 클릭하면 실행할 수 있다. IntelliJ 매우 편리.


파일명이 KotlinClassSono1.kt가 되고 있습니다만, Kotlin 파일은 클래스 파일일까 생각하고 있었습니다.

이 main 함수를 Java에서 어떻게 부르는가? 라고 하는 것으로 Jar 파일이 있을 것이다··· IntelliJ로 「Build Project」를 실행해도 특별히 아무것도 출력되지 않기 때문에 조사해 보았습니다.

Jar 파일 출력



파일 메뉴에서 Project Structure를 엽니다.

Project Settings>Artifacts 에서 「+」버튼을 클릭 JAR>From modules with dependencies

Main Class는 지정하지 않고 [OK] 버튼을 클릭

"Include in project build"를 체크합니다.

다시 "Build Project"를 실행해 보면 ...
프로젝트 폴더 아래에 Jar 파일이 출력됩니다. 감사합니다 IntelliJ

그건 그렇고, 프로젝트 이름은 "KotlinComponent"입니다.
Jar 파일을 들여다 보면

「파일명+Kt」라는 이름의 「KotilnClassSono1Kt.class」가 포함되어 있는 것을 확인할 수 있었습니다.

Java에서 부르기



Java 프로젝트에서 작성한 Jar 파일을 읽어 보면,
public class Main {
    public static void main(String[] args) {
        KotlinClassSono1Kt.main();
    }
}

KotlinClassSono1Kt가 보이고,

Java에서 Kotlin 코드를 실행할 수있었습니다.
클래스명에 Kt 붙어 있고, 왠지~라고 하는 것으로, IntelliJ에 돌아가 추가로 package와 class를 추가해 보았습니다.
패키지의 src 폴더에서 컨텍스트 메뉴 New > Package 로 패키지 작성. 보통입니다.
작성한 Package에서 컨텍스트 메뉴 New > Kotlin File/Class !?

여기서 처음으로 File과 Class의 차이를 깨달았습니다.
package ari

class KotlinClassSono2 {
}

Package에는 "ari"를 지정합니다.
Kotlin의 클래스 문서을 흉내내고 클래스에 함수 "test"를 갖게 해 보겠습니다. 생성자는 덤입니다.
package ari

class KotlinClassSono2 constructor(name: String){
    init {
        println("name = ${name}")
    }

    constructor(name: String, age: Int) : this("$name"){
        println("age = ${age}")
    }

    fun test() {
        println("test call OK !")
    }
}

다시 "Build Project"를 실행하여 Jar 파일을 만들고 Java에서 로드합니다.
"ari"패키지 아래에 "KotlinClassSono2"클래스가 보였습니다.
클래스 이름에 "Kt"가 붙지 않습니다. 과연~

생성자를 사용하여 인스턴스도 만들 수있었습니다.
함수 호출도 성공입니다.


마지막으로



Kotlin 좋아요.
사용하지 않지만 reference를 좀 더 읽어 볼까라고 생각했습니다.

좋은 웹페이지 즐겨찾기