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 
  • Error al importar classs de código de proyecto en android studio 3.0
  • ¿Cómo llamo a un método en Kotlin con un límite superior diferente?
  • ProcessBuilder no puede encontrar Kotlin en path
  • ¿Cómo no sobrescribir datos con onDataChange?
  • Kotlin Android imprime en la console
  • Acceso directo a las classs de Visibilidad interna de Kotlin
  • Código automático Kotlin llamando en el patrón de delegación
  • Usando las constantes de kotlin en la expresión del interruptor java
  • Modificadores de acceso Kotlin
  • ¿Cómo implementar la fórmula de Stirling con BigDecimal y BigInteger en Kotlin?
  • Gradle Kotlin DSL: Defina la versión de Kotlin en un lugar único