Ошибке типа noclassdeffounderror при запуске Скала/качать программы с SBT

Я пытаюсь скомпилировать старый проект со всего марта 2015 года. Я не трогал его с тех пор. Проект написан на Scala с библиотекой качания, и средство построения в.

Видимо мой build.sbt нуждается в обновлении файла. Покопавшись в сети, я обнаружил, что эта конфигурация должна работать.

lazy val root = (project in file (".")).
settings (
    name := "MyProgram",
    /* FORMERLY: */
    //libraryDependencies += "org.scala-lang" %% "scala-swing" %% "2.10+",
    //ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }
    /* NOW: */
    scalaVersion := "2.13.0",
    libraryDependencies += "org.scala-lang.modules" %%%% "scala-swing" %% "2.1.1"
)

Хитрость в том, чтобы использовать совместимые версии Scala и качели. Я пробовал следующие пары, которые я хотела работать вместе (либо потому, что я видел у них на сайте пакет Swing, или потому что он работал для других людей на так):

  • (Скала 2.13.0, Качели 2.1.1)
  • (Скала 2.12.6, Качели 2.1.1)
  • (2.12.1 Скала, Качели 2.0.0-М)
  • (В Scala 2.11.1, Качели 1.0.2)

Я также пробовал переключение с Явы 12 () С Java 8 (в).

Однако, все комбинации дают одну и ту же ошибку. Составление () работает нормально, но запуск приложения () и результаты в кучу NoClassDefFoundError / шибок с:

$ sbt run
[info] Loading project definition from /home/me/MyProject/project
[info] Loading settings for project root from build.sbt ...
[info] Set current project to MyProject (in build file:/home/me/MyProject/)
[info] Compiling 22 Scala sources to /home/me/MyProject/target/scala-2.12/classes ...
[warn] there were four deprecation warnings (since 2.12.0); re-run with -deprecation for details
[warn] one warning found
[info] running Main.Main 
[error] java.lang.NoClassDefFoundError: scala/swing/event/WindowOpened
[error]     at scala.swing.Window$$anon$1.windowOpened(Window.scala:80)
...
[error] Caused by: java.lang.ClassNotFoundException: scala.swing.event.WindowOpened
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
...
[error] java.lang.NoClassDefFoundError: scala/swing/event/WindowActivated
[error]     at scala.swing.Window$$anon$1.windowActivated(Window.scala:74)
...
[error] Caused by: java.lang.ClassNotFoundException: scala.swing.event.WindowActivated
[error]     at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
...

Главное окно приложения показывает, но является довольно недоступным, с каждым графическим элементом, формирующим более ошибки при активации; даже пытается закрыть окно с помощью диспетчера окон не.

Чего не хватает для запуска этой программы?

+1
2019-09-18 16:02:38
источник
0 ответов

Посмотрите другие вопросы по меткам