No se puede ejecutar la aplicación hello world como se muestra en O'Reilly – Introducción a la Progtwigción de Kotlin

Estoy tratando de duplicar el progtwig hello world del video O'Reilly – Introducción a la Progtwigción Kotlin (La Estructura de una Aplicación Kotlin).

Este es el progtwig (Main.kt):

package com.hadihariri.kotlincourse fun main(args: Array<String>) { println("Hello World!") } 

Comstackdo con "kotlinc Main.kt"

El video muestra esta forma de ejecutarlo:

 java -cp .:<path to kotlin runtime>/kotlin-runtime.jar com.hadihariri.kotlincourse.MainKt 

que para mí es:

 java -cp .:~/.sdkman/candidates/kotlin/current/lib/kotlin-runtime.jar com.hadihariri.kotlincourse.MainKt 

El time de ejecución existe en esa location:

 ls -al ~/.sdkman/candidates/kotlin/current/lib/kotlin-runtime.jar -rw-r--r-- 1 user user 879182 Jun 8 18:23 /home/user/.sdkman/candidates/kotlin/current/lib/kotlin-runtime.jar 

Sin embargo, obtengo el mismo error que obtiene sin especificar el time de ejecución en la ruta de la class:

 java -cp .:~/.sdkman/candidates/kotlin/current/lib/kotlin-runtime.jar com.hadihariri.kotlincourse.MainKt Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics at com.hadihariri.kotlincourse.MainKt.main(Main.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:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more 

El problema era que, aparentemente, el procesador Java classpath no expande el carácter ~ (tilde). Cuando reemplacé eso con la ruta del directory real, el progtwig se ejecutó. Usar $ HOME en lugar de ~ también funcionó. Y finalmente, funcionará si el carácter ~ (tilde) está al frente de la ruta de classs. Aparentemente el caparazón solo lo expande si está en el frente:

 java -cp ~/.sdkman/candidates/kotlin/current/lib/kotlin-runtime.jar:. com.hadihariri.kotlincourse.MainKt 
  • La diversión de Kotlin regresa prematuramente
  • ¿Cómo puede la class de un simulacro no ser igual a su class Java en Kotlin?
  • Elementos seleccionados en el menu
  • ¿Cómo adjuntar un elemento HTML o un DocumentFragment al DOM?
  • Kotlin: ¿cómo usar múltiples generics en class?
  • patrón Lateinit, perezoso e individual en kotlin
  • Argumento de tipo explícito Kotlin y RxJava
  • ¿Cómo corregir la ambigüedad de resolución de sobrecarga en Kotlin (sin lambda)?
  • Revertir el código fuente a Java después de la conversión Kotlin> Java de IntelliJ
  • GridLayout en Kotlin?
  • Cómo alterar las properties del object de testing en KotlinTest a través de interceptTestCase