Редактор не содержит основного типа

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

Вот код: http://www.scala-lang.org/node/45. При запуске на Eclipse я получил это сообщение: "Редактор не содержит основного типа", который предотвращает его запуск.

Есть ли что-нибудь, что мне нужно сделать... i.e разбить этот файл на несколько файлов или что?

Ответ 1

У меня эта проблема много с Eclipse и Scala. Это помогает, если вы очищаете свое рабочее пространство и перестраиваете свой проект.

Иногда Eclipse не распознает, какие файлы он должен перекомпилировать: (

Изменить: Код отлично работает в Eclipse

Ответ 2

В Eclipse убедитесь, что вы добавили исходную папку в свойства проекта → путь сборки java → source. В противном случае функция main() может не включаться в ваш проект.

Ответ 3

Вы должны убедиться, что ваши .java файлы находятся в папке .src в eclipse. У меня была такая же проблема, пока я не понял.

Ответ 4

Более простой способ - закрыть проект и снова открыть его!

Ответ 5

Просто убедитесь, что папка, в которой вы работаете, добавлена ​​в построенный путь:

right-click Ваша папка, → build PathUse as source Folder

и теперь он должен найти main в нем

надеюсь, что это поможет

Ответ 6

У меня была та же проблема. Я пробовал всевозможные вещи. И я узнал, что

  • Мои файлы .java не были связаны и
  • они не были помещены в папку 'src'.

Что я сделал:

Свойства проекта → Путь сборки Java → Источник

  • Удалена исходная папка 'src', которая была пуста, используя параметр "Удалить"
  • Добавлен источник, содержащий мои исходные .java файлы с помощью опции "Добавить папку"

Это решило ошибку.

Ответ 7

Что вам нужно сделать, создайте проект Java, но убедитесь, что вы поместили этот файл в пакетный файл этого проекта, иначе вы столкнетесь с той же ошибкой.

enter image description here

Ответ 8

***

Просто закройте и снова откройте

*** ваш проект в затмении. Иногда возникают проблемы с привязкой. Это решило мою проблему

Ответ 9

Этот код действителен. Вы пытались скомпилировать его вручную с помощью scalac? Кроме того, вы назвали свой файл "адресной книгой", все строчные, как имя объекта?

Кроме того, я обнаружил, что Eclipse по какой-то причине устанавливает основной класс как ".addressbook" вместо "адресной книги".

Ответ 10

Быстрое решение:

Во-первых, исключите пакет: Щелкните правой кнопкой мыши исходный пакет → Путь сборки → Исключить

Затем включите его обратно: Щелкните правой кнопкой мыши исходный пакет → Путь сборки → Включить

Ответ 11

вам следует создать файл

выбрав с правой стороны имя файла,

под которым будет найден src-папка их правой кнопкой мыши select → class option

их файл должен быть создан

Ответ 12

Вы можете попробовать запустить основную функцию из боковой панели eclipse.

solution

Ответ 13

У меня тоже была эта проблема. Решение состоит в том, чтобы убедиться, что eclipse создало проект как проект Java. Просто создайте новый проект Java и скопируйте свой класс в папку src (и импортируйте возможные зависимости). Это должно устранить проблему.

Ответ 14

Правильный ответ: библиотека Scala должна быть до библиотеки JRE в пути построения.

Перейдите в Java Buildpath > Закажите и экспортируйте и переместите библиотеку Scala в начало

Ответ 15

У меня была эта проблема с проектом Java, который я импортировал из файловой системы (под Eclipse Helios). Вот подсказка: код src вообще не компилировался, так как не появилось каталога "bin".

Мне пришлось создать проект Java с нуля (с помощью мастера), а затем сравнить .project файлы нерабочих и рабочих проектов.

Проект, предоставляющий "Редактор не содержит основного типа", имел это как "buildSpec" в файле .project:

<buildSpec>
</buildSpec>

Но рабочий проект имел это как "buildSpec":

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

Я скопировал это, и импортированный проект работал.

Я знаю, что мой ответ для Java, но то же самое может быть проблемой для вашего проекта Scala.

Ответ 16

Может быть, файл, который вы создали, находится вне папки src (source). Попытка вызвать объект класса (из файла, находящегося в папке src) из файла .java за пределами исходной папки, приводит к той же ошибке. Скопируйте файл .java в исходную папку, а затем создайте его. Ошибка исчезнет.

Ответ 17

Убедитесь, что ваш .java файл присутствует либо в пакете str, либо в другом пакете. Если файл java с основной функцией находится за пределами всех пакетов, эта ошибка возникает.

Ответ 18

У меня была та же проблема. У меня был основной класс из пакета src, в другой папке. Я перемещаю его и исправляю папку и решаю

Ответ 19

запустите "eclipse -clean -refresh" из командной строки. Это устранило проблему для меня, когда все другие решения не удались.

Ответ 20

Это может быть проблемой в пути Java Build. Попробуйте выполнить следующие шаги:

  • Перейти к свойствам проекта
  • Перейти к java Путь сборки
  • Перейдите на вкладку "Источник" и добавьте папку проекта src

Это должно решить проблему.

Ответ 21

Если это проект maven, пожалуйста, проверьте, что файл java создан в src/main/java

Если вы не получаете, пожалуйста, измените путь JRE и создайте java файлы в указанной структуре папок

Ответ 22

Для меня в Eclipse 3.6 эта проблема возникает, когда мой основной метод не является общедоступным. Я вызвал проблему, имея основной метод:

static void main(String[] args) 

Dubugger не смог обнаружить это сам. Я очень удивлен, что Eclipse упустил это.

Ответ 23

Выполните следующие шаги:

  • Резервное копирование всех ваших .java файлов в другое место
  • удалить весь проект java
  • Создайте новый проект java, щелкнув правой кнопкой мыши по корневому каталогу и нажмите новый
  • восстановить все файлы в новое место!

Ответ 24

В худшем случае - создайте проект еще раз со всеми импортами с самого начала. В моем случае ни один из других вариантов не работал. Этот тип ошибок указывает на наличие ошибки в настройках проекта. Однажды мне удалось это решить, но как только были сделаны дальнейшие разработки, ошибка вернулась. Воспроизведение всего с самого начала помогло мне понять и оптимизировать некоторые ссылки, и теперь я уверен, что он работает правильно.

Ответ 25

Файл → Импорт → Существующие проекты в рабочее пространство → Выберите "Архивный архив" → Просмотрите и найдите файл → Завершить. Если он уже импортировал какой-то другой способ, удалите его и попробуйте так. У меня была такая же проблема, пока я не попробовал это.

Ответ 26

Еще одна вещь, которую нужно проверить: убедитесь, что ваш исходный файл содержит правильное объявление пакета, соответствующее его подкаталогу. Ошибка, упомянутая OP, может быть видна при попытке запустить "основной тип", объявленный в файле в подкаталог, но отсутствует инструкция пакета.

Ответ 27

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

Ответ 28

Попробуйте "Обновить проект". Как только я это сделал, появилась опция "Запуск от Java".

Ответ 29

В моем конкретном случае "Hello World" причиной этой проблемы был тот факт, что мой метод main() находился внутри Scala class.

Я поместил метод main() в Scala object, и ошибка исчезла.

Это потому, что Scala object в терминах Java - это объект с только статическими элементами и методами внутри.

Вот почему Java public static void main() в Scala должен быть помещен под object.

(Scala class не может содержать статический код внутри)

Ответ 30

По причине ошибки: "Редактор не содержит основного типа"

Ошибка, встречающаяся в: Eclipse Neon

Операционная система: Windows 10 Pro

При копировании исходных папок с большого пальца и оставьте папку Eclipse_Projects.metadata.

Помимо новой установки, вам нужно будет убедиться, что вы объедините файлы из (Thrumb-drive) F: Eclipse_Projects.metadata.plugins.

Эти плагины - это биты и куски кода библиотеки, взятые из SDK при создании класса. Я действительно все зависит от того, что вы импортируете javax.swing. *; ----- в свой файл. Поскольку вы передаете его, обязательно соедините ------ Eclipse_Projects.metadata.plugins ------ вручную с простой копией и вставкой, принимая при этом функцию пропуска для уже существующих плагинов в вашей папке.

Для окон 10 вы можете найти свои рабочие папки по аналогичной схеме иерархии файлов.

C: Пользователи > Mikes Laptop > workspace > .metadata > .plugins < --- merge плагины здесь