У меня есть проект, который будет компилироваться / упаковываться / запускаться с SBT, но когда я вызываю jar из командной строки с помощью Scala, я получаю «java.lang.ClassNotFoundException».
build.sbt:
name := "coloring"
version := "0.1"
scalaVersion := "2.12.5"
libraryDependencies ++= Seq("org.scala-graph" %% "graph-core" % "1.12.5")
выполнение sbt run
приводит к:
[info] Compiling 1 Scala source to /path/to/dir/coloring/target/scala-2.12/classes ...
[warn] there was one feature warning; re-run with -feature for details
[warn] one warning found
[info] Done compiling.
[info] Packaging /path/to/dir/coloring/target/scala-2.12/coloring_2.12-0.1.jar ...
[info] Done packaging.
[info] Running Main
[success] Total time: 6 s, completed May 21, 2018 12:55:19 PM
Однако выполнение scala target/scala-2.12/coloring_2.12-0.1.jar
приводит к
java.lang.ClassNotFoundException: scalax.collection.GraphBase$InnerNode
Что может быть не так?Как это возможно, что sbt run
работает, но когда вы вызываете jar напрямую, он не работает?
EDIT : я решил проблему с помощью sbt-assembly ,но (1) я не думаю, что это необходимо, и (2) в аналогичных проектах в прошлом я использовал точно такой же build.sbt и library / import / etc, и проект работает при вызове из командной строки.