소령이와 함께-1.Hello, World!

4706 단어 Kotlin

설명


요즘 Kotlin이 귀여워서 어쩔 수 없어요. 그래서 Kolin에 관해서는 제 머리 정리를 겸하고 싶어요.
이번에는 기본 중의 기본 Hello, World!할 수 있는 곳으로.
이것을 본 사람은 당연히 읽을 수 있다.
비록 이렇게 말하지만μ'S랑 아무 상관 없어요.
그러나'사림'을 듣자마자'사림'이라는 사람도 추천하는 언어가 아니라고 느낀다

전제 조건


다양한 이동 Kotlin을 만들 수 있는 환경은 다음과 같습니다.
항목
컨텐트
OS
MacOS
Homebrew를 사용할 수 있습니다.
JDK
Java8
참고로 JDK는 Java6 이상이면 됩니다.

단계


1. Kotlin 설치


1.1. Homebrew 설치 사용

$ brew install kotlin
설치 작업은 이것뿐입니다.

1.2. 설치 확인

$ kotlin -version
Kotlin version 1.2.0 (JRE 1.8.0_152-b16)
Kotlin 1.2.0이 들어있는 것을 확인할 수 있습니다.

2. Kotlin 동작 확인 - Hello, World!


2.1. Kotlin 파일 만들기


기본에 충실, Hello, World!에서 설명한 대로 해당 매개변수의 값을 수정합니다.
우선, Kotlin의 코드를 작성하기 위한 파일을 만듭니다.
$ vim HelloKotlin.kt
Kotlin 파일의 확장자는kt입니다.

2.2. 함수 만들기


만든 Hello Kotlin.kt에 다음 코드를 기술합니다.
fun main(args: Array<String>) {
  println("Hello, Kotlin!")
}
2.2.1. 함수 정보
자바에 익숙해지면 갑자기 함수만 만드는 것에 대해 불협화음을 느끼는 사람이 있을 수 있다.Java라면 모든 파일에 클래스를 만들고 클래스에서 방법을 만듭니다.
우선 Kotlin은 함수만 있으면 성립되는 언어라는 것을 기억해야 한다.
2.2.2. fun 정보
main 함수이지만 fun부터 씁니다.
이 fun은 함수를 정의하는 설명 방법입니다.
fun 関数名(パラメータ: パラメータの型): 戻り値の型 {処理内容}
이번main 함수에서는 표준 출력만 하고 반환 값이 없습니다.Java가 말하는void형입니다.Kotlin에서는 유닛형이라고 합니다.
이것은 생략할 수 있기 때문에 이번에는 생략했다.

3. 컴파일 및 실행


3.1. JAR 컴파일 및 작성


kotlinc 명령을 사용하여 컴파일합니다.
다음 옵션으로 JAR을 컴파일해 보십시오.
$ kotlinc HelloKotlin.kt -include-runtime -d HelloKotlin.jar
$ ls -l
total 1808
-rw-r--r--  1 shinyay  staff  918546 12  7 08:52 HelloKotlin.jar
-rw-r--r--  1 shinyay  staff      62 12  7 08:33 HelloKotlin.kt
JAR 파일이 생성되었는지 확인합니다.

3.2. 실행


생성된 JAR 파일을 실행해 보십시오.
$ java -jar HelloKotlin.jar
Hello, Kotlin!
작업 확인했습니다.

3.3. include-runtime 정보


참, 컴파일할 때 include-runtime를 달았어요.이걸 빼서 컴파일하면 어떨까 해서요.
$ kotlinc HelloKotlin.kt -d HelloKotlin.jar
$ ls -l
total 16
-rw-r--r--  1 shinyay  staff  1160 12  7 09:01 HelloKotlin.jar
-rw-r--r--  1 shinyay  staff    62 12  7 08:33 HelloKotlin.kt
$ java -jar HelloKotlin.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
        at HelloKotlinKt.main(HelloKotlin.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more
include-runtime 옵션이 없는 JAR 파일에 ClassNotFoundException이 나타납니다.
Kotlin의 런타임 라이브러리를 찾을 수 없습니다.
include-runtime 옵션은 JAR에 Kotlin의 런타임 라이브러리를 포함하는 옵션입니다.
include-runtime 옵션으로 제작된 JAR의 내용을 살펴보겠습니다.
$ jar tvf HelloKotlin.jar
    82 Thu Dec 07 09:05:20 JST 2017 META-INF/MANIFEST.MF
   988 Thu Dec 07 09:05:20 JST 2017 HelloKotlinKt.class
    35 Thu Dec 07 09:05:20 JST 2017 META-INF/main.kotlin_module
   483 Mon Nov 27 15:49:42 JST 2017 org/jetbrains/annotations/Mutable.class
   546 Mon Nov 27 15:49:42 JST 2017 org/jetbrains/annotations/NotNull.class
   548 Mon Nov 27 15:49:42 JST 2017 org/jetbrains/annotations/Nullable.class
   485 Mon Nov 27 15:49:42 JST 2017 org/jetbrains/annotations/ReadOnly.class
   898 Mon Nov 27 15:49:10 JST 2017 kotlin/jvm/internal/CallableReference$NoReceiver.class
  3317 Mon Nov 27 15:49:10 JST 2017 kotlin/jvm/internal/CallableReference.class
  2625 Mon Nov 27 15:49:10 JST 2017 kotlin/jvm/internal/CollectionToArray.class
   337 Mon Nov 27 15:49:10 JST 2017 kotlin/jvm/internal/DefaultConstructorMarker.class
   201 Mon Nov 27 15:49:10 JST 2017 kotlin/jvm/internal/FunctionBase.class
    :
    :
    :
Kotlin에 대한 라이브러리가 있는 것을 확인할 수 있습니다.

총결산


Kolin의 설치부터 Hello, World!나오는 데까지 왔다.
어디까지 이어질지 모르겠지만 앞으로 Kotlin을 조금씩 정리하고 싶어요.

좋은 웹페이지 즐겨찾기