Как использовать Scala в IntelliJ IDEA (или: почему так сложно получить рабочую IDE для Scala)?
недавно я отказался от попыток использовать Scala в Eclipse (основные вещи, такие как завершение, не работают). Итак, теперь я пытаюсь IntelliJ. Я не очень далеко продвинулся.
я смог редактировать программы (в пределах подсветки синтаксиса и завершения... ура!). Но я не могу запустить даже самый простой "Hello World". Это была первоначальная ошибка:
Scala signature Predef has wrong version Expected 5.0 found: 4.1 in .... scala-library.jar
но это было вчера, с идеей 9.0.1. Увидеть ниже...
обновление
Сегодня Я удалил IntelliJ 9.0.1 и установил раннюю доступность 9.0.2 с 4/14 стабильной версией плагина Scala.
затем я настраиваю проект с нуля через мастера:
- новый проект с нуля
- JDK-1.6.U20 в
- примите значение по умолчанию (project) вместо global / module
- принять загрузку Scala 2.8.0beta1 в папку lib проекта
создал новую класс:
object hello { def main(args: Array[String]) { println("hello: " + args); } }
для моих усилий у меня теперь есть совершенно новая ошибка:)
вот это:
внутренняя ошибка Scalac: класс java.ленг.ClassNotFoundException [Ява.чистая.Urlclassloader, на$1.запустить(urlclassloader, на.Ява:202), на Java.безопасность.AccessController.doPrivileged(родной способ), Ява.чистая.Urlclassloader, на.findClass(urlclassloader, на.Ява:190), на Java.ленг.загрузчик классов.loadClass (загрузчик классов.java: 307), sun.разное.Launcher$AppClassLoader.loadClass (пусковая установка.java: 301), Ява.ленг.загрузчик классов.loadClass (загрузчик классов.java: 248), java.ленг.Класс.forName0 (собственный метод), java.ленг.Класс.forName (Class.java: 169), org.в JetBrains.подключаемый модуль.скала.компилятор.РТ.ScalacRunner.main (ScalacRunner.java: 72)]
ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ
Я удалил 9.0.2 EA и переустановил 9.0.1, но на этот раз пошел с версией 2.7.3 Scala, а не по умолчанию 2.7.6, потому что 2.7.3 показан на скриншотах на веб-сайте IntelliJ (я думаю, что screen-shots доказывают, что они на самом деле протестировали эту версию!). Теперь все работает!!!
9 ответов
я столкнулся с той же ошибкой scalac при попытке запустить проект Scala в Intellij Idea 9.0.2, и мне удалось найти решение случайно :). Вот шаги, которые я предпринял при создании проекта и его запуске.
Я создал проект Scala в IntelliJ Idea 9.0.2 final (он был выпущен сегодня). Я установил плагин Scala, перезапустил IDE и создал новый проект Scala (с именем "TestScala") с помощью scala-2.8.0.Beta1 как библиотека проектов. Как только проект создан и библиотеки scala загружены, я создал тест.файл Scala со следующим содержимым:
object Test {
def main(args:Array[String]){
println("hello")
}
}
после этого я создал конфигурацию запуска ("редактировать конфигурации"), выбрав шаблон" приложение". Я устанавливаю в качестве основного теста класса и выбираю имя проекта ("TestScala") в поле со списком" использовать classpath и JDK модуля". Когда я запускаю конфигурацию, я получаю ту же ошибку, что и вы сообщили ("Внутренняя ошибка Scalac: класс Ява.ленг.ClassNotFoundException") .
теперь идет причудливая часть :). Я нажимаю правой кнопкой мыши на проект, выбираю "настройки модуля", смотрю на все настройки, но ничего не меняется . Нажмите "Применить" и "ОК", попробуйте запустить конфигурацию еще раз и он работает :) .
Я использую Intellij Idea 9.0.2 окончательный выпуск (build 95-66); Ubuntu 9.10 и JDK 1.6.0_18. Я также должен упомянуть, что у меня был JDK, настроенный в Intellij, иначе есть дополнительный шаг для его настройки.
обновление:
при проверке настройки модуля необходимо нажать на кнопку Модуль - >Scala и фасеты - >Scala (разверните его и нажмите на Scala (ProjectName)) . Оба эти параметра касаются компилятора scala и расположения библиотеки scala. Я бы предположил, что эти значения неправильно установлены при создании проекта, но сохраняются после того, как пользователь коснется их и сохранит настройки.
чтобы ответить на ваш вопрос, трудно получить рабочую IDE для Scala по двум причинам: (a) Scala только начинает охватывать широкую аудиторию и (b) из-за (a) нет никаких деловых оснований для траты времени на Scala IDE.
кроме того, если вы достаточно стары, чтобы отбросить свой ум назад и достаточно молоды, чтобы все еще помнить, вы знали бы, что в течение первых пяти или более лет Java мы застряли с окей-иш инструментами, такими как JBuilder, которые сделали немного больше, чем скомпилировали ваш код, когда вы так сказали - нет подсветки ошибок, нет автоматического импорта, и слово рефакторинг даже не существует. Если вы хотите стать первопроходцем, вы должны быть готовы отрезать часть дороги самостоятельно или, по крайней мере, Буш-Баш.
Я знаю, что это не поможет вам, но я успешно использовал идею для Scala на Linux, Mac и Windows. Обычно я устанавливаю Scala SDK где-то локально и указываю на это, а не использую опцию "загрузить".
в настоящее время я, в основном, с помощью EAP версия IDEA 9 на Mac OS X с Scala 2.8.0.Beta1-RC5 и он работает хорошо (за исключением того, что fsc, похоже, не работал со смешанными источниками).
вы можете попробовать свою удачу в идея Scala плагин дискуссионный форум, хотя у меня не было много ответов на мои собственные сообщения там.
установка плагина является обязательным условием.
следующее, что вам нужно сделать, это определить библиотеку (глобальную или конкретную для проекта; я использую global), которая содержит библиотеку Scala и файлы jar компилятора (как минимум, это scala-compiler.jar
и scala-library.jar
). Добавление исходных банок и банка документации или URL-адресов-тоже хорошая идея. Затем сделайте эту библиотеку зависимостью от любых модулей в вашем проекте, которые включают код Scala.
наконец, найдите грани Scala в тех модули и снимите оба флажка.
Я только что сделал новую установку и имел точно такую же проблему сам. Оказалось, что, поскольку я создал файл в корневом пакете, IDEA добавила оператор package вверху с именем пакета. Я предполагаю, что это затем было скомпилировано как "основной объект пакета" - допустимый синтаксис в 2.8? Во всяком случае, я удалил строку, в которой говорилось о пакете, и все сработало нормально.
У меня была та же проблема вчера, когда я пытался ее настроить. Решение довольно простое, вам просто нужно установить scala где-то в настройках проекта.
Я использую Netbeans для написания программ scala. Пока это очень хорошо работает с моими кодами. Вы можете попробовать плагин здесь:http://wiki.netbeans.org/Scala68v1.
Я получал эту ошибку, а также должен был щелкнуть правой кнопкой мыши по проекту и "открыть Настройки модуля". Однако это было нечто большее, чем просто удар. Я должен был убедиться, что мой корень контента был правильным для каждого проекта. По какой-то причине были некоторые неправильные исходные и тестовые папки.
мой проект использует maven в качестве основного инструмента сборки, и импорт проекта в Intellij, вероятно, создал эти неправильные настройки.
У меня была похожая проблема, после этой инструкции по записи в блоге решили проблему для меня