Mi programa - HelloWorld.scala

object HelloWorld {
    def main(args: Array[String]): Unit = {
        println("Hello, world!")
    }
}

jar cvfe HelloWorld.jar HelloWorld HelloWorld*.class

Después de crear el archivo jar, intenté obtener la salida del archivo jar

java -jar HelloWorld.jar

Pero recibí el error

    Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$
        at HelloWorld$.main(HelloWorld.scala:12)
        at HelloWorld.main(HelloWorld.scala)
Caused by: java.lang.ClassNotFoundException: scala.Predef$
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 2 more
0
user6023600 13 nov. 2017 a las 22:15

2 respuestas

La mejor respuesta

Añadir línea

Class-Path: /home/dmitin/.m2/repository/org/scala-lang/scala-library/2.1‌​2.3/scala-library-2.‌​12.3.jar

(es decir, su ubicación de scala-library) a HelloWorld.jar/META-INF/MANIFEST.MF.

Entonces

java -jar HelloWorld.jar Dmytro 

Produce

Hello, Dmytro!
0
Dmytro Mitin 13 nov. 2017 a las 20:25

Tienes que incluir el tiempo de ejecución de scala y las bibliotecas en la ruta de clases de Java, ciertamente puedes hacerlo desde la línea de comandos, pero te sugiero que uses herramientas más cómodas, mira por ejemplo el tutorial en www.scala-lang. org

1
gtosto 13 nov. 2017 a las 19:21