Как использовать Scala в IntelliJ IDEA (или:почему так сложно получить работающую IDE для Scala)?

StackOverflow https://stackoverflow.com/questions/2668153

Вопрос

Недавно я отказался от попыток использовать Scala в Eclipse (базовые вещи, такие как завершение, не работают).Так что теперь я пробую IntelliJ.Я не очень далеко продвинулся.

Я смог редактировать программы (в рамках подсветки синтаксиса и завершения...ура!).Но я не могу запустить даже простейший "Hello World".Это была первоначальная ошибка:

Scala signature Predef has wrong version
Expected 5.0
found: 4.1 in .... scala-library.jar

Но это было вчера с IDEA 9.0.1.Смотрите ниже...

Обновить

Сегодня я удалил IntelliJ 9.0.1 и установил раннюю доступность 9.0.2 со стабильной версией плагина Scala 4/14.

Затем я настраиваю проект с нуля с помощью мастеров:

  • новый проект с нуля
  • JDK - 1.6.до 20 лет
  • примите значение по умолчанию (project) вместо global / module
  • примите загрузку Scala 2.8.0beta1 в папку библиотеки проекта

Создан новый класс:

object hello {
  def main(args: Array[String]) {
    println("hello: " + args);
  }
}

Благодаря моим усилиям, теперь у меня появилась совершенно новая ошибка :)

Вот оно:

Внутренняя ошибка Scalac:класс java.lang.ClassNotFoundException [java.net.URLClassLoader$1.выполнить (URLClassLoader.java:202), java.security.AccessController.Допривилегированный (собственный метод), java.net.URLClassLoader.FindClass(URLClassLoader.java:190), java.lang.ClassLoader.loadClass(ClassLoader.java:307), sun.разное.Launcher$AppClassLoader.loadClass(Launcher.java:301), java.lang.ClassLoader.loadClass(ClassLoader.java:248), java.lang.Class.forName0(собственный метод), java.lang.Class.forName(Class.java:169), org.jetbrains.плагины.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:72)]

ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ

Я удалил 9.0.2 EA и переустановил 9.0.1, но на этот раз выбрал версию Scala 2.7.3, а не стандартную 2.7.6, потому что именно 2.7.3 показана на снимках экрана на веб-сайте IntelliJ (я думаю, снимки экрана доказывают, что они действительно тестировали эту версию!).Теперь все работает!!!

Это было полезно?

Решение

Я столкнулся с такой же ошибкой scalac при попытке запустить проект Scala в Intellij Idea 9.0.2, и мне случайно удалось найти решение :).Это шаги, которые я предпринял при создании проекта и его запуске.

Я создал проект Scala в Intellij Idea 9.0.2 final (он был выпущен сегодня).Я установил плагин Scala, перезапустил IDE и создал новый проект Scala (с именем "TestScala") с scala-2.8.0.Beta1 в качестве библиотеки проекта.После создания проекта и загрузки библиотек scala я создал файл Test.scala со следующим содержимым:

object Test  {
 def main(args:Array[String]){
   println("hello")
 }
}

После этого я создал конфигурацию запуска ("Редактировать конфигурации"), выбрав шаблон "Приложение".Я устанавливаю в качестве основного класса Test и выбираю название проекта ("TestScala") в поле со списком "Использовать classpath и JDK модуля".Когда я запускаю конфигурацию, я получаю ту же ошибку, о которой вы сообщили ("Внутренняя ошибка Scalac:класс java.lang.ClassNotFoundException") .

Теперь начинается самая странная часть :).Я щелкаю правой кнопкой мыши по проекту, выбираю "Настройки модуля", просматриваю все настройки, но Я ничего не меняю .Нажмите "применить" и "ок", попробуйте снова запустить настройку и это работает :) .

Я использую Intellij Idea 9.0.2 финальной версии (сборка 95-66).;Ubuntu 9.10 и JDK 1.6.0_18.Я также должен упомянуть, что у меня был настроен JDK в Intellij, в противном случае потребуется дополнительный шаг для его настройки.

Обновить:

При проверке настройки модуля необходимо нажать на кнопку Модуль-> Scala и Грани-> Scala (разверните его и нажмите на Scala(имяпроекта)) .Оба этих параметра касаются компилятора scala и расположения библиотеки scala.Я бы предположил, что эти значения неправильно заданы при создании проекта, но сохраняются, как только пользователь прикасается к ним и сохраняет настройки.

Другие советы

Чтобы ответить на ваш вопрос, трудно получить рабочую IDE для SCALA по двум причинам: (а) Scala только начинает достичь широкой аудитории и (B) из-за (а), делают дело для проведения времени на Скала IDE.

Кроме того, если вы достаточно взрослый, чтобы отбрасывать свой разум и достаточно молодо, чтобы до сих пор помнить, вы знаете, что за первые пять или более лет Java, мы застряли с инструментами Alky-ish, как JBuilder, который сделал немного больше, чем компилировать Код, когда вы сказали так - никакой ошибки выделяется, нет автоматического импорта, а слово Refactoring даже не существовало. Если вы хотите пионер, вы должны быть готовы порезать немного дороги самостоятельно или, по крайней мере, Буш-Баш.

Я знаю, что это не поможет вам, но я успешно использовал идею для Scala на Linux, Mac и Windows. У меня обычно есть Scala SDK, установленная где-то локально и точечная идея, а не использовать опцию «скачать».

В настоящее время я в основном использую EAP версия идеи 9 На Mac OS X со Scala 2.8.0.beta1-RC5 и он работает хорошо (за исключением того, что FSC, кажется, не работает со смешанными источниками).

Вы можете попробовать свою удачу в Idey Scala плагин обсуждение форума, Хотя у меня не было большого количества ответов на мои собственные сообщения там.

Установка плагина является обязательным условием.

Следующее, что вы должны сделать, это определить библиотеку (глобальный или проект, специфичный; я использую Global), который содержит библиотеку Scala а также Compiler JAR файлы (как минимум, это scala-compiler.jar а также scala-library.jar). Добавление исходных банок и JAR документации или URL-адреса тоже хорошая идея. Затем сделайте эту библиотеку зависимостью любых модулей в вашем проекте, который включает в себя Scala код.

Наконец, найдите грани Scala в этих модулях и де-выберите обе флажки там.

Я только что сделал новую установку и имел именно эту же проблему самостоятельно. Оказалось, что, поскольку я создал файл в корневой упаковке, идея добавила оператор пакета на вершине с именем пакета. Я предполагаю, что это затем скомпилировано как «Объект Package Main» - Допустимый синтаксис в 2.8? В любом случае, я удалил линию, которая сказала пакет, и все это работало нормально.

У меня была такая же проблема вчера, пытаясь настроить это. Решение довольно простое, вам просто нужно установить Scala где-то в настройках проекта.

Вы смешиваете код, собранный двумя разными версиями SCALA.

Я использую NetBeans для написания программ Scala. Пока что это очень хорошо работает с моими кодами. Вы можете попробовать плагин здесь: http://wiki.netbeans.org/scala68v1..

Я получал эту ошибку, а также пришлось щелкнуть правой кнопкой мыши на проекте и «Открыть настройки модуля». Тем не менее, это было больше, чем просто ударить. Мне пришлось убедиться, что мой код содержимого был правильным для каждого проекта. По какой-то причине были неверные исходные и тестовые папки.

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

У меня была похожая проблема, следующая это Инструкции по сообщениям блога решили проблему для меня

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top