Проблемы компиляции и запуска проектов Scala в IntelliJ Idea - PullRequest
0 голосов
/ 21 октября 2018

Я установил последнюю версию IntelliJ Idea с плагином Scala.Я создал проект SBT Scala с IDE.К сожалению, я не могу скомпилировать или запустить даже самый простой пример «Hello World».

object Main {
    def main(args: Array[String]): Unit ={
        val x: Int = 5
        println("Hello Scala!")
        println(x)
    }
}

Если я пытаюсь запустить его, он говорит, что «Ошибка: не удалось найти основной класс Main».Перестройка проекта не помогает.

НО, если я запускаю терминальную программу "sbt" и выполняю "run", все работает нормально.Более того, он компилирует необходимый файл класса, чтобы IntelliJ Idea могла запустить его после этого шага.Но всякий раз, когда я что-то изменяю в коде и пытаюсь перестроить его из Idea, он как обычно не работает.

Редактировать: в Eclipse все работает нормально.

ОБНОВЛЕНИЕ

Если я попытаюсь выполнить «compile» из оболочки sbt, а затем «Run» с IDE, это сработает.Но он не будет делать это при выполнении «Build» или «Rebuild Project».Иногда, но, к сожалению, не всегда, чтобы иметь возможность воспроизвести его, я получаю исключение: «Не удалось инициализировать класс sbt.internal.io.Milli $»

ОБНОВЛЕНИЕ 2-го:

Я упростил задачу еще больше.Теперь у меня есть что-то вроде следующего снимка экрана:

Снимок экрана IntelliJ IDEA

ОБНОВЛЕНИЕ 3-е:

В моем развертывании было две ошибки.Одним из них было то, что, как указывалось ранее, были некоторые проблемы с определением пакета.Весь исходный код должен зависеть от src / main / scala, но этого недостаточно.Чтобы использовать структуру SBT для построения, мне пришлось перейти в File -> Settings -> Build, Execution, Deployment -> Build Tools -> sbt и поставить галочку «Использовать авто-импорт» и «Использовать оболочку sbt для сборки и импорта».".

После этого все работает нормально.Финал!

Большое спасибо всем за полезный вклад!

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

На вашем снимке экрана Runner в неправильном пакете.Это написано package main.scala.Если Runner.scala находится в src/main/scala/way/to/my/package объявление пакета должно быть package way.to.my.package (если оно просто в src/main/scala, то не должно быть строки package ...).

Также при необходимости вы можете попробовать (из чегосначала нужно попробовать то, что нужно попробовать последним, если что-то пыталось раньше, не помогло)

  • sbt clean
  • повторно импортировать проект в IntelliJ IDEA
  • File -> Invalidate Caches / Restart ...
  • удалить .idea подпапку папки проекта
0 голосов
/ 21 октября 2018

Пробовали ли вы зеленую стрелку рядом с "объектом Main"?Это должно запустить программу.

Screensht from IntelliJ Idea

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...