Scala Project не скомпилируется в Eclipse; "Невозможно обнаружить основной класс."

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

Вопрос

Я установил Eclipse 3.5.2 и сегодняшний плагин Scala от / update-update (это Scala 2.8 финал.) Я могу компилировать и запустить Scala Projects, состоящие из одного объекта Singleton, который реализует основные ().

Но если проект содержит больше классов, я получаю «Не удалось найти ошибку основного класса».

Я попробовал поиск решения, и я обнаружил:

Eclipse правильно ищет главный класс $, а не главный класс
* Под настройками отладки мой главный класс правильно идентифицирован как mypackage.main
* Мой плагин в курсе и рекомендуется для моей версии Eclipse
* Очистка, перезапуск и т. Д. Не помогает.

Один и тот же проект будет скомпилировать со скальцем.

Спасибо за любые идеи о том, как решить это.

Редактировать: Matthieuf предложил, я должен опубликовать код.

Этот фрагмент создает ошибку. Это не самый идиоматический код, но я написал это таким образом, чтобы проверить мою среду. Я попробовал это как один файл и как отдельные файлы. Это работает с Scalac.

import swing._

class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
}

object Hello {
  val frame = new HelloFrame    
  def main(args : Array[String]) : Unit = {
        frame.visible = true
   }
}

Но, если я гнежу определение Helloframe в Hello, он работает. Этот фрагмент отлично работает:

import swing._

object Hello {

    class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
    }

    val frame = new HelloFrame

    def main(args : Array[String]) : Unit = {
        frame.visible = true
    }
}
Это было полезно?

Решение

Для меня проблема заключалась в том, что была ошибка сборки (см. Вкладка «Проблемы), которая была предотвращена компиляцией; Упс! Причина, по которой вы видите ошибку, заключается в том, что запуск макроса действует, несмотря на шаг сбойной компиляции, и попытки запустить файлы классов, которые он ожидает быть там; Они не существуют, потому что произошло ошибка сборки, предотвращая компиляцию, поэтому он говорит, что он не может найти главную (не скомпилированный).

Проблема уходит, когда сборка может успешно завершить, то есть ошибки исправлены.

Думаю, теоретически, теоретически, могут быть более сложные причины, по которым ваша сборка не успешно завершается, которые не перечислены в проблемах.

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

Одна возможность заключается в том, что вы пытаетесь запустить использование Ctrl-F11, но из другого класса.

Плагин Scala Eclipse не подчиняется по умолчанию для запуска Java. В предпочтениях-> Run / Debug-> Запуск, существуют некоторые параметры, работающие параметры -> Всегда запустите ранее выбранное приложение и т. Д. В настоящее время это в настоящее время не работает в плагине Scala Eclipse. Чтобы запустить указанный основной, вам нужно запустить его из редактора для класса.

Для этого была поднята ошибка. http://scalaaide.assembla.com/spaces/scalaaide/tickets/1000023-scala-launch-does-not-follow-jdt-behaviour

Редактировать: это сейчас (в основном) исправлено.

Для меня это была проблема затмения. Я заметил, что .class Файл не был построен вообще. Так bin каталог не имеет скомпилированных классов. Когда я вручную скомпилировал * .scala файл, используя * .sbt и скопировал его bin Каталог он работал, как ожидалось. Я попробовал разные советы и трюки, и она не работала, пока я Переустановил плагин Scala в Eclipse .

Я бы решаю подобную проблему исполнения Executig «Project-> Clean.» С следующим автоматическим зданием.

У меня было одно и то же сообщение об ошибке с приложением Java, сделанное мной.

Проблема заключалась в том, что я удалял (хотя внутри затмения) банку, которая принадлежала к Путь сборки Java, не удаляя его из пути сборки Java (окно свойств проекта). Когда я сделал это, класс мог скомпилировать и запустить снова.

Убедитесь, что .class Файлы существуют, обычно ниже bin каталог.

В частности, если у вас есть ошибки в несвязанных файлах в том же проекте, то компиляция может выйти из строя, и нет .class Файлы будут произведены.

Может быть случай проектов, содержащих ошибки, добавляемые в путь сборки приложения, который предотвращает завершение успешной компиляции. Убедитесь, что вы удалите любой такой проект из пути сборки перед запуском приложения.

Удаление этих проектов решена проблема для меня.

У вас есть правильная настройка инструмента сборки? Как только SBT вы его установили?

Вы можете проверить его версию на $ SBT --version

Если это не установлено, вы можете скачать сюда http://www.scala-sbt.org/download.html.

Возможно, вам придется перезапустить свой Eclipse после установки.

Просто скопируйте свой файл файла xxx.scala. Удалите пакет и создайте новый класс Scala. Вставьте код XXX.SCALA. (Если вы используете Maven, сделайте Maven Clean и Build.) Запустите конфигурацию снова. Это работает для меня.

Я столкнулся с этим вопросом. Я только что удалил имя пакета, создал Scala Class, записал тот же код, установить сборку на «Создание автоматически». Наконец, это работает отлично.

Проверьте Scala-Ide.log

Для меня проблема заключалась в том, что были ошибки:

Appdata local temp sbt_10d322fb sbt_10d322fb xsbt classname.cscala: 16: Ошибка: не найдено: state stutionphase protingphase (currentrun.flattenphase.next) {s the fullname searator}

Если вы используете Intellij, MARK Directory в качестве исходного корня

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