#java #scala #maven #noclassdeffounderror #scala-ide
#java #scala #maven #noclassdeffounderror #scala-ide
Вопрос:
Вот простой тест, который я использую для вызова метода Scala из Java:
public static void main(String args[]) {
java.util.Map<String, java.util.List<String>> rec = news.recommend.DriverObj.runTest();
System.out.println(rec.toString());
}
Вот определение метода Scala:
def runTest: java.util.Map[String, java.util.List[String]] = {
new java.util.HashMap[String, java.util.List[String]]
}
Но он выдает ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/Function1
at news.recommend.DriverObj.runTest(DriverObj.scala)
Что я должен сделать, чтобы это работало гладко?
Обновление: я запускаю его через Eclipse, и мой путь сборки содержит :
Итак, библиотека Scala должна быть найдена?
Комментарии:
1. Что находится на вашем пути к классу, когда вы его запускаете?
2. Мне кажется, что вы не включаете jar для библиотеки scala в путь к классам.
scala
включает его автоматически,java
не включает.3. @Dave Newton пожалуйста, посмотрите Обновление вопроса
4. Путь сборки и путь выполнения не обязательно одно и то же, я тоже считаю, что библиотека Scala не находится в пути к классу времени выполнения.
5. @StackG, вы можете вручную добавить
scala-library.jar
в свой проект Eclipse в качестве библиотеки, как вы добавляете любой обычный jar при использовании Java.
Ответ №1:
добавление зависимости Scala в сборку maven может решить проблему :
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.3</version>
</dependency>
Комментарии:
1. Мне это не помогло. Я запускаю Gatling. Похоже, Gatling по-другому управляет своим путем к классу.
2. У меня уже была эта зависимость в списке, и у меня все еще была проблема. Решение от @Kuang Wenyi сработало для меня.
Ответ №2:
Что касается меня, в конфигурации «Конфигурации запуска / отладки» [idealJ]
не забудьте выбрать «Включить зависимости с «предоставленной» областью»
Комментарии:
1. Сработало для меня. Спасибо!
2. У меня тоже сработало, но почему?
3. @Filip Я считаю, что есть какая-то проблема между IdeaJ и maven.