4

Я получаю это сообщение об ошибке при запуске my sbt project в IntelliJ, щелкнув правой кнопкой мыши «Отладка».java.lang.NoClassDefFoundError: scala/reflection/api/TypeCreator

/home/johnreed/Applications/jdk1.8.0_73/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:34395,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath /home/johnreed/Applications/jdk1.8.0_73/jre/lib/charsets.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/deploy.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/cldrdata.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/dnsns.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/jaccess.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/jfxrt.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/localedata.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/nashorn.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/sunec.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/sunjce_provider.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/sunpkcs11.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/ext/zipfs.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/javaws.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/jce.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/jfr.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/jfxswt.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/jsse.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/management-agent.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/plugin.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/resources.jar:/home/johnreed/Applications/jdk1.8.0_73/jre/lib/rt.jar:/home/johnreed/sbtProjects/UnderstandingScala/target/scala-2.11/classes:/home/johnreed/.ivy2/cache/com.chuusai/shapeless_2.11/bundles/shapeless_2.11-2.3.1.jar:/home/johnreed/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.8.jar:/home/johnreed/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-2.0.1.jar:/home/johnreed/.ivy2/cache/com.google.guava/guava/bundles/guava-16.0.1.jar:/home/johnreed/.ivy2/cache/com.twitter/jsr166e/jars/jsr166e-1.0.0.jar:/home/johnreed/.ivy2/cache/com.twitter/util-collection_2.11/jars/util-collection_2.11-6.34.0.jar:/home/johnreed/.ivy2/cache/com.twitter/util-core_2.11/jars/util-core_2.11-6.34.0.jar:/home/johnreed/.ivy2/cache/com.twitter/util-function_2.11/jars/util-function_2.11-6.34.0.jar:/home/johnreed/.ivy2/cache/commons-collections/commons-collections/jars/commons-collections-3.2.2.jar:/home/johnreed/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:/home/johnreed/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.11/bundles/scala-parser-combinators_2.11-1.0.4.jar:/home/johnreed/.ivy2/cache/org.typelevel/macro-compat_2.11/jars/macro-compat_2.11-1.1.1.jar:/home/johnreed/.ivy2/cache/scala.trace/scala-trace-debug_2.11/jars/scala-trace-debug_2.11-2.2.14.jar:/home/johnreed/Applications/idea-IC-145.258.11/lib/idea_rt.jar pkg.Main 
Connected to the target VM, address: '127.0.0.1:34395', transport: 'socket' 
Disconnected from the target VM, address: '127.0.0.1:34395', transport: 'socket' 
Exception in thread "main" java.lang.NoClassDefFoundError: scala/reflect/api/TypeCreator 
    at pkg.Main.main(Main.scala) 
Caused by: java.lang.ClassNotFoundException: scala.reflect.api.TypeCreator 
    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 

Process finished with exit code 1 

Я получаю эту ошибку только при запуске IntelliJ. Когда я запускаю его из SBT с sbt run, он отлично работает. sbt compile также работает. Как исправить это, так что my project работает как приложение?

IntelliJ NoClassDefFoundError

* Решение *

вручную добавить -Скала отражает-2.11.8.jar

jar file

ответ

3

Пожалуйста, попробуйте запустить

sbt package 

из командной строки. Тогда дайте нам знать, исправляет ли это проблему.

Обновление. Это связано с тем, что scala-reflect.jar не подбирается внутри intellij. Вы сделать есть ему build.sbt:

"org.scala-lang" % "scala-reflect" % version % "provided", 

Пожалуйста, добавьте эту зависимость вручную проекта IntelliJ. Почему IJ не подбирал это, неясно, так что это в основном хак. Но с intellij исправления, подобные этому, к сожалению, иногда требуется.

+2

Это не исправить –

+0

@MichaelLafayette ТНХ для обратной связи: Я обновил ответ. – javadba

+0

@javaba - Посмотрите на файл build.sbt: http://i.imgur.com/mJVVIXf.png –

0

Эта проблема вчера разрушила мой день. Сегодня мне предложили intellij скачать v2016.2 (я был на v2016.1), и эта проблема исчезла. Я удалил следующую строку из моего build.sbt:

"org.scala-lang" % "scala-reflect" % version % "provided" 

И смог построить и запустить проект успешно.

 Смежные вопросы

  • Нет связанных вопросов^_^