КлассNotFoundException: scala.PreDef $issue

Привет, ребята, я пытаюсь упаковать простой исполняемый Jar, написанный в Scala, через функцию Eclipse Export.

При попытке выполнить Jar из cmd java -jar test2.jar

Я получаю следующее.... Любые идеи? Спасибо.

Caused by: java.lang.NoClassDefFoundError: scala/Predef$
        at Parser.Test(Parser.scala:5)
        at Main.main(Main.java:12)
        ... 5 more
Caused by: java.lang.ClassNotFoundException: scala.Predef$
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 7 more

Ответ 1

Вам просто нужно добавить банку библиотеки scala в путь к классам.

Вы можете сделать это следующим образом (предполагая, что в <каталоге > scala -library.jar "находится текущий каталог):

java -cp scala-library.jar -jar test2.jar

Документацию для tha java comamnd можно найти здесь: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

Ответ 2

Вы также можете упаковать библиотеку scala вместе с вашим проектом. См.

Ответ 3

Я сделал удален "Scala контейнер библиотеки" из проекта. Далее - добавить необходимую scala библиотеку (scala -library.jar) в Java BuildPath (в свойствах для) как "Добавить внешние JAR..." в my (не как ссылка на scala lib). И включите их всех в "Заказ и экспорт", Наконец - выполните Экспорт для проекта с параметром "Необходимые пакеты для создания JAR" и это отлично работает:)

Ответ 4

для меня я использовал jdk 11 и контейнер библиотеки Scala 2.12.3, и когда я перешел на jdk 8, он работает нормально, это из-за поддержки версии jdk11 scala Совместимость JDK

щелкните правой кнопкой мыши проект, путь сборки, настройте путь сборки, отредактируйте свой jdk до значения меньше 11